这篇文章给大家分享的是有关python怎么实现求解字符串集的最长公共前缀方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
python主要应用领域有哪些
1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Python开发。3.人工智能应用,基于大数据分析和深度学习而发展出来的人工智能本质上已经无法离开python。4、系统运维工程项目,自动化运维的标配就是python+Django/flask。5、金融理财分析,量化交易,金融分析。6、大数据分析。
问题比较简单,给定一个字符串集合求解其中最长的公共前缀即可,这样的问题有点类似于最长公共子序列的问题,但是比求解最长最长公共子序列简单很多,因为是公共前缀,这样的话只需要挨个遍历即可,只要遍历长度结束或者结束前发现有不相同的即可终止,返回不同位置之前的子序列即可,下面是具体的实现:
#!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)
结果如下:
str_list1---> ['abcdj', 'abcdef', 'abcdekljjh', 'abcdelopqwe']
abcd
str_list2---> ['abcde', 'abcdef', 'abcdekljjh', 'abcdelopqwe']
abcde
[Finished in 0.3s]
感谢各位的阅读!关于“python怎么实现求解字符串集的最长公共前缀方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!