https://leetcode.com/problems/license-key-formatting Easy

Решение

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()  // Переворачиваем строку перед возвратом
}