Python 找出英文單詞列表(list)中最長單詞鏈
本文主要介紹Python中單詞字符串的列表(list),找出列表中所有單詞中前一個單詞首字母和后一個單詞尾字母相同,組成最長的單詞鏈方法代碼,并且每個單詞不能多次使用。
例如:
words = [’giraffe’, ’elephant’, ’ant’, ’tiger’, ’racoon’, ’cat’, ’hedgehog’, ’mouse’]
最長的單詞鏈列表:
[’hedgehog’, ’giraffe’, ’elephant’, ’tiger’, ’racoon’]1、用遞歸方法查找
words = [’giraffe’, ’elephant’, ’ant’, ’tiger’, ’racoon’, ’cat’, ’hedgehog’, ’mouse’]def get_results(_start, _current, _seen): if all(c in _seen for c in words if c[0] == _start[-1]): yield _current else: for i in words: if i[0] == _start[-1]: yield from get_results(i, _current+[i], _seen+[i])new_d = [list(get_results(i, [i], []))[0] for i in words]final_d = max([i for i in new_d if len(i) == len(set(i))], key=len)
輸出結(jié)果:
[’hedgehog’, ’giraffe’, ’elephant’, ’tiger’, ’racoon’]
2、使用networkx查找import networkx as nximport matplotlib.pyplot as pltwords = [’giraffe’, ’elephant’, ’ant’, ’tiger’, ’racoon’, ’cat’, ’hedgehog’, ’mouse’]G = nx.DiGraph()G.add_nodes_from(words)for word1 in words: for word2 in words: if word1 != word2 and word1[-1] == word2[0]: G.add_edge(word1, word2)nx.draw_networkx(G)plt.show()print(nx.algorithms.dag.dag_longest_path(G))
到此這篇關(guān)于Python 找出英文單詞列表(list)中最長單詞鏈的文章就介紹到這了,更多相關(guān)Python 列表最長單詞鏈內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Ajax實現(xiàn)表格中信息不刷新頁面進行更新數(shù)據(jù)2. 詳解CSS偽元素的妙用單標簽之美3. Java Spring WEB應(yīng)用實例化如何實現(xiàn)4. 關(guān)于Mysql-connector-java驅(qū)動版本問題總結(jié)5. UDDI FAQs6. msxml3.dll 錯誤 800c0019 系統(tǒng)錯誤:-2146697191解決方法7. HTML <!DOCTYPE> 標簽8. PHP 面向?qū)ο蟪绦蛟O(shè)計之類屬性與類常量實現(xiàn)方法分析9. CSS自定義滾動條樣式案例詳解10. 將properties文件的配置設(shè)置為整個Web應(yīng)用的全局變量實現(xiàn)方法
