python 實現(xiàn)求解字符串集的最長公共前綴方法
更新時間:2018年07月20日 09:37:23 作者:Together_CZ
今天小編就為大家分享一篇python 實現(xiàn)求解字符串集的最長公共前綴方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
問題比較簡單,給定一個字符串集合求解其中最長的公共前綴即可,這樣的問題有點類似于最長公共子序列的問題,但是比求解最長最長公共子序列簡單很多,因為是公共前綴,這樣的話只需要挨個遍歷即可,只要遍歷長度結(jié)束或者結(jié)束前發(fā)現(xiàn)有不相同的即可終止,返回不同位置之前的子序列即可,下面是具體的實現(xiàn):
#!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:求解字符串集的最長公共前綴 ''' def find_longest_prefix(str_list): ''' 求解字符串集的最長公共前綴 ''' str_list.sort(lambda x,y:cmp(len(x),len(y))) shortest_str=str_list[0] print str_list max_prefix=len(shortest_str) flag=0 for i in range(max_prefix): for one_str in str_list: if one_str[i]!=shortest_str[i]: return shortest_str[:i] break return shortest_str if __name__ == '__main__': str_list1=['abcdef','abcdekljjh','abcdelopqwe','abcdj'] str_list2=['abcdef','abcdekljjh','abcdelopqwe','abcde'] print 'str_list1--->', find_longest_prefix(str_list1) print 'str_list2--->', find_longest_prefix(str_list2)
結(jié)果如下:
str_list1---> ['abcdj', 'abcdef', 'abcdekljjh', 'abcdelopqwe'] abcd str_list2---> ['abcde', 'abcdef', 'abcdekljjh', 'abcdelopqwe'] abcde [Finished in 0.3s]
以上這篇python 實現(xiàn)求解字符串集的最長公共前綴方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python實現(xiàn)在Excel工作表中添加、修改及刪除超鏈接
在創(chuàng)建Excel工作簿時,內(nèi)部文檔的互鏈、報告自動化生成或是創(chuàng)建外部資源快速訪問路徑是比較常見的需求,本文將介紹如何使用Python實現(xiàn)在Excel工作表中對超鏈接進行添加、修改及刪除的操作,需要的朋友可以參考下2024-10-10python中round函數(shù)保留兩位小數(shù)的方法
在本篇內(nèi)容里小編給各位分享的是一篇關(guān)于python中round函數(shù)保留兩位小數(shù)的方法及相關(guān)知識點,有興趣的朋友們可以學(xué)習(xí)下。2020-12-12