Решение
fun licenseKeyFormatting(s: String, k: Int): String {
val sb = StringBuilder()
// Проходим по строке и добавляем только буквы и цифры в верхнем регистре
for (char in s) {
if (char != '-') {
sb.append(char.uppercaseChar())
}
}
// Начинаем добавлять дефисы с конца, создавая группы по K символов
var index = sb.length - 1
val formatted = StringBuilder()
var count = 0
while (index >= 0) {
if (count > 0 && count % k == 0) {
formatted.append('-') // Добавляем дефис после каждой группы из K символов
}
formatted.append(sb[index])
count++
index--
}
return formatted.reverse().toString() // Переворачиваем строку перед возвратом
}