text из строчных латинских букв и число gap. Переставьте буквы так, чтобы любые две одинаковые буквы стояли на расстоянии не меньше gap (расстояние между позициями i и j равно |i − j|). При gap ≤ 1 ограничений нет.
Подходящих перестановок обычно много, поэтому постройте вот эту. Заполняйте строку слева направо; на каждой позиции рассматривайте буквы, у которых ещё остались копии и которые не стояли ни на одной из предыдущих gap − 1 позиций. Из них возьмите букву с наибольшим числом оставшихся копий, а при равенстве — первую по алфавиту.
Если на какой-то позиции подходящей буквы нет, верните пустую строку "". Так случается ровно тогда, когда нужной перестановки не существует.text="ppqqr", gap=2 → 'pqpqr'
Шаг 0: у p и q по 2 копии, берём p. Шаг 1: p только что стояла, берём q. Шаг 2: у p и q по одной копии, p раньше по алфавиту. Шаг 3: q. Шаг 4: r. Получаем pqpqr.
text="xxxy", gap=2 → ''
Три буквы x на расстоянии хотя бы 2 друг от друга требуют строки длиной не меньше 5, а у нас 4 буквы.
text="banana", gap=0 → 'aanabn'
text="ppqqr", gap=2
'pqpqr'
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 101 тест на сервере, включая скрытые.