Radzhab
@Radzhab

Алгоритм поиска телескопизмов?

Есть список слов
bulb
queen
dinosaur

Есть строка Bulbasaur. Как мы видим это составная часть двух слов выше - bulb и dinosaur.
lines = []
    fh = open('input.txt')
    for line in fh:
        lines.append(line.strip())
    fh.close()
    
    str = 'Bulbasaur'
    
    newlist = []
    
    for line in lines:
        if line in str.lower():
            newlist.append(line)
            str = str.replace(line,"")
    
    for line in lines:
        if str.lower() in line:
            newlist.append(line)
            str = str.replace(line,"")

Данный код в принципе корректно находит эти телескопизмы, но чувствую я тут накидал индусского кода. Подскажите более красивый вариант
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Представьте каждое слово, как граф (узел - буква).
2. Затем создайте общий граф, содержащий только уникальные части и связи между ними.
3. Ищите похожую структуру графа-слова внутри общего графа: непрерывные последовательности цепочек (узлов). Разрывы - сохраняете и продолжаете поиск с остановившегося узла.

На выходе - получите все возможные "склейки" последовательностей искомого слова.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы