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()
}
}