| 12345678910111213141516171819202122232425262728293031323334353637 | 
							- func licenseKeyFormatting(S string, K int) string {
 
- 	runes := preprocess(S)
 
- 	n := len(runes)
 
- 	if n == 0 {
 
- 		return ""
 
- 	}
 
- 	dash, cnt := n/K, n%K
 
- 	if n%K == 0 {
 
- 		dash--
 
- 		cnt = K
 
- 	}
 
- 	key := make([]rune, n+dash)
 
- 	for i, j := 0, 0; i < n+dash; i++ {
 
- 		if cnt == 0 {
 
- 			cnt = K
 
- 			key[i] = '-'
 
- 		} else {
 
- 			key[i] = runes[j]
 
- 			j++
 
- 			cnt--
 
- 		}
 
- 	}
 
- 	return string(key)
 
- }
 
- func preprocess(s string) []rune {
 
- 	runes := make([]rune, 0)
 
- 	for _, r := range s {
 
- 		if r != '-' {
 
- 			if 'a' <= r && r <= 'z' {
 
- 				r = rune(r - 32)
 
- 			}
 
- 			runes = append(runes, r)
 
- 		}
 
- 	}
 
- 	return runes
 
- }
 
 
  |