Ctrl K

Кольцо из разворачиваемых слов

Средняя
Дан список слов pieces. Их выписывают по кругу в заданном порядке так, что после последнего снова идёт первое. Каждое слово перед этим можно оставить как есть или развернуть задом наперёд — независимо от остальных. Затем кольцо разрезают в одном месте и читают по часовой стрелке от места разреза, получая обычную строку той же длины. Верните лексикографически наибольшую строку, которую можно так получить.
Пример 1
pieces=['ram', 'top'] → 'trampo'

Оставляем ram как есть, а top разворачиваем в pot. Кольцо rampot режем перед последней буквой t и читаем дальше по кругу: trampo.

Пример 2
pieces=['bca'] → 'cba'

Одно слово само образует кольцо. Развернув его в acb и разрезав перед c, получаем cba.

Пример 3
pieces=['ab', 'zc', 'b'] → 'zcbba'
Ограничения
  • 1 ≤ len(pieces) ≤ 1000
  • 1 ≤ len(pieces[i]) ≤ 1000
  • Суммарная длина всех слов не больше 1000
  • Слова состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяНаименьшая последовательность по стрелкам СредняяВычеркнуть столбцы ради порядка СредняяОкруглить цены до нужной суммы СредняяНитка бус без повторов Средняя
загружаем Python…
Вход
pieces=['ram', 'top']
Ожидается
'trampo'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 112 тестов на сервере, включая скрытые.