Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
使用递归实现
words=['giraffe','elephant','ant','tiger','racoon','cat','hedgehog','mouse'] defget_results(_start,_current,_seen): ifall(cin_seenforcinwordsifc[0]==_start[-1]): yield_current else: foriinwords: ifi[0]==_start[-1]: yieldfromget_results(i,_current+[i],_seen+[i]) new_d=[list(get_results(i,[i],[]))[0]foriinwords] final_d=max([iforiinnew_diflen(i)==len(set(i))],key=len)
输出:
['hedgehog','giraffe','elephant','tiger','racoon']
工作原理类似于广度优先搜索,因为只要当前值之前没有被调用,get_results函数就会继续遍历整个列表。函数已经查找过的值被添加到_seen列表中,最终停止递归调用流。这个解决方案也会忽略重复的结果,
words=['giraffe','elephant','ant','ning','tiger','racoon','cat','hedgehog','mouse',] new_d=[list(get_results(i,[i],[]))[0]foriinwords] final_d=max([iforiinnew_diflen(i)==len(set(i))],key=len)
输出:
['ant','tiger','racoon','ning','giraffe','elephant']
到此这篇关于Python排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)的文章就介绍到这了,更多相关Python排序最长英文单词链内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短