python 实现求解字符串集的最长公共前缀方法
问题比较简单,给定一个字符串集合求解其中最长的公共前缀即可,这样的问题有点类似于最长公共子序列的问题,但是比求解最长最长公共子序列简单很多,因为是公共前缀,这样的话只需要挨个遍历即可,只要遍历长度结束或者结束前发现有不相同的即可终止,返回不同位置之前的子序列即可,下面是具体的实现:
#!usr/bin/envpython #encoding:utf-8 ''' __Author__:沂水寒城 功能:求解字符串集的最长公共前缀 ''' deffind_longest_prefix(str_list): ''' 求解字符串集的最长公共前缀 ''' str_list.sort(lambdax,y:cmp(len(x),len(y))) shortest_str=str_list[0] printstr_list max_prefix=len(shortest_str) flag=0 foriinrange(max_prefix): forone_strinstr_list: ifone_str[i]!=shortest_str[i]: returnshortest_str[:i] break returnshortest_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 [Finishedin0.3s]
以上这篇python实现求解字符串集的最长公共前缀方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。