欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈

 更新時(shí)間:2020年12月14日 09:54:31   作者:levi  
這篇文章主要介紹了Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文主要介紹Python中單詞字符串的列表(list),找出列表中所有單詞中前一個(gè)單詞首字母和后一個(gè)單詞尾字母相同,組成最長(zhǎng)的單詞鏈方法代碼,并且每個(gè)單詞不能多次使用。

例如:

words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']

最長(zhǎng)的單詞鏈列表:

['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 nx
import matplotlib.pyplot as plt
words = ['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)中最長(zhǎng)單詞鏈的文章就介紹到這了,更多相關(guān)Python 列表最長(zhǎng)單詞鏈內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論