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. Ищите похожую структуру графа-слова внутри общего графа: непрерывные последовательности цепочек (узлов). Разрывы - сохраняете и продолжаете поиск с остановившегося узла.

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

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект