Python 排序最長(zhǎng)英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)
使用遞歸實(shí)現(xiàn)
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)
輸出:
['hedgehog', 'giraffe', 'elephant', 'tiger', 'racoon']
工作原理類似于廣度優(yōu)先搜索,因?yàn)橹灰?dāng)前值之前沒有被調(diào)用,get_results函數(shù)就會(huì)繼續(xù)遍歷整個(gè)列表。函數(shù)已經(jīng)查找過的值被添加到_seen列表中,最終停止遞歸調(diào)用流。這個(gè)解決方案也會(huì)忽略重復(fù)的結(jié)果,
words = ['giraffe', 'elephant', 'ant', 'ning', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse',] 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)
輸出:
['ant', 'tiger', 'racoon', 'ning', 'giraffe', 'elephant']
到此這篇關(guān)于Python 排序最長(zhǎng)英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)的文章就介紹到這了,更多相關(guān)Python 排序最長(zhǎng)英文單詞鏈內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)簡(jiǎn)歷
本文給大家分享的是個(gè)人弄的一個(gè)使用Python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)招聘簡(jiǎn)歷的小工具的代碼,非常的簡(jiǎn)單,給大家參考下吧。2016-03-03
Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼
這篇文章主要介紹了Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
詳解Python小數(shù)據(jù)池和代碼塊緩存機(jī)制
這篇文章主要介紹了詳解Python 小數(shù)據(jù)池和代碼塊緩存機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
python入門for循環(huán)嵌套理解學(xué)習(xí)
這篇文章主要介紹了python入門關(guān)于for循環(huán)嵌套的理解學(xué)習(xí),希望大家可以學(xué)會(huì)并運(yùn)用到日常工作中,有需要的朋友可以借鑒參考下,希望能夠有幫助2021-09-09
django實(shí)現(xiàn)將修改好的新模型寫入數(shù)據(jù)庫(kù)
這篇文章主要介紹了django實(shí)現(xiàn)將修改好的新模型寫入數(shù)據(jù)庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python中實(shí)現(xiàn)列表的逆序、復(fù)制與清除的幾種常見方法
本文介紹了Python中列表的逆序、復(fù)制和清除操作,通過reverse()方法、切片、copy()方法和clear()方法,我們可以輕松地對(duì)列表進(jìn)行這些操作2024-12-12
Python實(shí)現(xiàn)數(shù)字小寫轉(zhuǎn)大寫的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)數(shù)字小寫轉(zhuǎn)大寫的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12

