Remove dashes, uppercase, then build groups from left to right. The first group gets the leftover characters.
function licenseKeyFormatting(s, k):
cleaned = s.replace("-", "").toUpperCase()
n = len(cleaned)
if n == 0:
return ""
firstLen = n % k
if firstLen == 0:
firstLen = k
result = cleaned[0:firstLen]
i = firstLen
while i < n:
result += "-" + cleaned[i:i+k]
i += k
return result
time, space.