https://leetcode.com/problems/rearrange-spaces-between-words/description/ Easy

Условие

Дана строка text, содержащая слова, разделённые пробелами (между словами может быть по несколько пробелов). Слова — это последовательности непробельных символов. Необходимо перераспределить все пробелы так, чтобы между каждым двумя соседними словами было одинаковое количество пробелов (максимально возможное), а оставшиеся пробелы (если они есть) добавить в конец строки. Вернуть полученную строку.

Решение

class Solution {
    fun reorderSpaces(text: String): String {
        val totalSpaces = text.count { it == ' ' }
        val words = text.trim().split("\\\\s+".toRegex())
        val gaps = if (words.size > 1) totalSpaces / (words.size - 1) else 0
        val remainder = if (words.size > 1) totalSpaces % (words.size - 1) else totalSpaces

        val sb = StringBuilder()
        for ((i, w) in words.withIndex()) {
            sb.append(w)
            if (i != words.lastIndex) repeat(gaps) { sb.append(' ') }
        }
        repeat(remainder) { sb.append(' ') }
        return sb.toString()
    }
}