Ось як повернути назад і повторно ввести один рядок в інший:
- Почніть з першого рядка.
- Видаліть символи в кінці, поки результат не буде префіксом другого рядка. (Це може зайняти 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