https://leetcode.com/problems/reformat-the-string/description/ | Easy |
---|
Дана строка s, содержащая буквы и цифры. Необходимо переформатировать строку так, чтобы буквы и цифры чередовались. Если это невозможно (например, если букв и цифр разное количество, отличающееся более чем на 1), вернуть пустую строку. Итоговая строка должна содержать все символы исходной строки.
class Solution {
fun reformat(s: String): String {
val letters = mutableListOf<Char>()
val digits = mutableListOf<Char>()
for (c in s) {
if (c.isLetter()) letters.add(c)
else digits.add(c)
}
if (kotlin.math.abs(letters.size - digits.size) > 1) return ""
val result = StringBuilder()
val larger = if (letters.size >= digits.size) letters else digits
val smaller = if (letters.size >= digits.size) digits else letters
for (i in larger.indices) {
result.append(larger[i])
if (i < smaller.size) result.append(smaller[i])
}
return result.toString()
}
}