Решение
class Solution {
fun reorderSpaces(text: String): String {
val n = text.length
var spaces = 0
val words = ArrayList<String>()
val cur = StringBuilder()
var i = 0
while (i < n) {
val c = text[i]
if (c == ' ') {
spaces++
if (cur.isNotEmpty()) {
words.add(cur.toString())
cur.setLength(0)
}
} else {
cur.append(c)
}
i++
}
if (cur.isNotEmpty()) words.add(cur.toString())
val w = words.size
if (w == 1) {
val sb = StringBuilder(words[0].length + spaces)
sb.append(words[0])
var k = 0
while (k < spaces) { sb.append(' '); k++ }
return sb.toString()
}
val gap = spaces / (w - 1)
val tail = spaces - gap * (w - 1)
val sb = StringBuilder(n)
i = 0
while (i < w) {
sb.append(words[i])
if (i < w - 1) {
var k = 0
while (k < gap) { sb.append(' '); k++ }
}
i++
}
var k = 0
while (k < tail) { sb.append(' '); k++ }
return sb.toString()
}
}