Ctrl K

Самое старшее слияние

Средняя
Даны две строки left и right из строчных латинских букв. Строим новую строку: пока хотя бы одна из исходных не пуста, снимаем первую букву с left или с right (с любой непустой) и дописываем её в конец результата. В итоге каждая буква использована ровно один раз, а порядок букв внутри каждой исходной строки сохранён. Верните лексикографически наибольший результат, который можно так получить.
Пример 1
left="bad", right="cab" → 'cbadab'

Берём c из right, затем b из left (остаток bad больше, чем ab). Остаток ad больше ab, поэтому дальше идут a и d из left, а в конце ab. Итог: cbadab.

Пример 2
left="zz", right="y" → 'zzy'

Обе буквы z выгоднее поставить в начало.

Пример 3
left="aab", right="aac" → 'aacaab'
Ограничения
  • 1 ≤ len(left), len(right) ≤ 3000
  • Строки состоят только из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКуски без общих букв СредняяЗаписка из газетных заголовков СредняяОбмены до k-й следующей перестановки СредняяОбменами к правильным скобкам СредняяДопишите, чтобы слово нашлось Средняя
загружаем Python…
Вход
left="bad", right="cab"
Ожидается
'cbadab'

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