时间:2021-05-22
问题比较简单,给定一个字符串集合求解其中最长的公共前缀即可,这样的问题有点类似于最长公共子序列的问题,但是比求解最长最长公共子序列简单很多,因为是公共前缀,这样的话只需要挨个遍历即可,只要遍历长度结束或者结束前发现有不相同的即可终止,返回不同位置之前的子序列即可,下面是具体的实现:
#!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']abcdstr_list2---> ['abcde', 'abcdef', 'abcdekljjh', 'abcdelopqwe']abcde[Finished in 0.3s]以上这篇python 实现求解字符串集的最长公共前缀方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现查找字符串数组最长公共前缀。分享给大家供大家参考,具体如下:编写一个函数来查找字符串数组中的最长公共前缀。classSolutio
本文实例讲述了PHP实现求两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下:前面一篇PHP实现求解最长公共子串问题的方法是基于java改进而来,这里
一、问题描述给定两个字符串,求解这两个字符串的最长公共子序列(LongestCommonSequence)。比如字符串1:BDCABA;字符串2:ABCBDAB
本文实例讲述了PHP实现求解最长公共子串问题的方法。分享给大家供大家参考,具体如下:题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则
最长公共子串(TheLongestCommonSubstring)LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两