first и second. Нужно найти самую короткую строку, из которой можно получить каждое из них, вычеркнув некоторые символы (оставшиеся символы порядок не меняют).
Таких строк обычно несколько, поэтому ответ определяется однозначно таким правилом. Строку собирают с конца, по одной букве, пока оба слова не будут исчерпаны. На каждом шаге смотрят на последние ещё не использованные буквы обоих слов:
1. если можно поставить последнюю букву first (засчитав её только для first) и при этом итоговая строка всё ещё может получиться самой короткой — ставят её;
2. иначе, если так можно поставить последнюю букву second (только для second) — ставят её;
3. иначе последние буквы слов совпадают — ставят эту букву, засчитывая её для обоих слов.
Верните получившуюся строку.first="cat", second="cut" → 'cuat'
Общие буквы c и t используются один раз, остаются a и u: длина 4. Собираем с конца: t — общая для обоих слов, затем a из first, затем u из second и общая c. Получается cuat.
first="ab", second="ba" → 'bab'
Подходят aba и bab. Последней буквой может стать b из first, поэтому ответ bab.
first="pine", second="pine" → 'pine'
Слова совпадают, и само слово уже содержит оба.
first и second состоят из строчных латинских буквfirst="cat", second="cut"
'cuat'
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 102 теста на сервере, включая скрытые.