Вот как выполнить возврат и повторную печать из одной строки в другую:
- Начните с первой строки.
- Удалите символы в конце, пока результат не станет префиксом второй строки. (Это может занять 0 шагов.)
- Добавляйте символы в конце, пока результат не станет равным второй строке. (Это также может занять 0 шагов.)
Например, путь от fooabc
до fooxyz
выглядит так:
fooabc
fooab
fooa
foo
foox
fooxy
fooxyz
задача
Имея список слов, напишите программу, которая забирает и перепечатывает свой путь от пустой строки ко всем последовательным словам в списке обратно к пустой строке. Выведите все промежуточные строки.
Например, учитывая список ввода ["abc", "abd", "aefg", "h"]
, вывод должен быть:
a
ab
abc
ab
abd
ab
a
ae
aef
aefg
aef
ae
a
h
правила
Вы можете вернуть или распечатать список строк или одну строку с каким-либо разделителем на ваш выбор. При желании вы можете включить начальные и конечные пустые строки. Входные данные гарантированно содержат как минимум одно слово, а каждое слово гарантированно содержит только строчные буквы ASCII ( a
- z
). Изменить: последовательные строки на входе гарантированно не равны друг другу.
Это код-гольф ; выигрывает самый короткий код в байтах.
Ссылочная реализация в Python 3: попробуйте онлайн!
["abc","abc"]
?
a,abc,abcde,abc,a,abc,abcde