# Python3 Solution

• ``````class Solution:
"""
:type S: str
:type K: int
:rtype: str
"""
# Remove dashes from input string
noDash = S.replace("-", "")
# Uppercase all alphabetic characters
allUpper = noDash.upper()
# Since the first chunk of the formatted string is
# where we want a chunk shorter than K characters,
# we reverse the string before the next step
reved = allUpper[::-1]
# This is the meat of the solution:
# We create the list of K-length chunks using list comprehension.
# Looping i from 0 to the length of the string (with dashes removed) by steps of K,
# Take the subset of the string from index i to index i+K.
# If the string is not divisible by K,
# the last index of chunkList contains the short group.
chunkList = [reved[i:i+K] for i in range(0,len(reved), K)]
# Finally, since the string was reversed before splitting,
# each chunk will be reversed.
# So we build our final list of K-length groups by iterating backwards over
# the previous list, and reversing each individual chunk.
finalL = [x[::-1] for x in chunkList[::-1]]
# Now we just return the elements our final list joined by a dashes!
return "-".join(finalL)

``````

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.