https://leetcode.com/problems/reverse-string-ii Easy

Решение

fun reverseStr(s: String, k: Int): String {
    val chars = s.toCharArray()
    var i = 0

    // Проходим по строке с шагом 2 * k
    while (i < chars.size) {
        // Определяем границы для переворота
        var left = i
        var right = minOf(i + k - 1, chars.size - 1)

        // Переворачиваем первые k символов
        while (left < right) {
            val temp = chars[left]
            chars[left] = chars[right]
            chars[right] = temp
            left++
            right--
        }

        // Переходим к следующему блоку из 2 * k символов
        i += 2 * k
    }

    // Преобразуем массив символов обратно в строку
    return String(chars)
}