python 实现求解字符串集的最长公共前缀方法


Posted in Python onJuly 20, 2018

问题比较简单,给定一个字符串集合求解其中最长的公共前缀即可,这样的问题有点类似于最长公共子序列的问题,但是比求解最长最长公共子序列简单很多,因为是公共前缀,这样的话只需要挨个遍历即可,只要遍历长度结束或者结束前发现有不相同的即可终止,返回不同位置之前的子序列即可,下面是具体的实现:

#!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 实现求解字符串集的最长公共前缀方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
python解析文件示例
Jan 23 Python
python list使用示例 list中找连续的数字
Jan 27 Python
python中split方法用法分析
Apr 17 Python
python如何重载模块实例解析
Jan 25 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
python实现浪漫的烟花秀
Jan 30 Python
在python里从协程返回一个值的示例
Feb 19 Python
django中cookiecutter的使用教程
Dec 03 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 Python
python实现求两个字符串的最长公共子串方法
Jul 20 #Python
Django基础知识与基本应用入门教程
Jul 20 #Python
opencv python 2D直方图的示例代码
Jul 20 #Python
Linux下python制作名片示例
Jul 20 #Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 #Python
使用python脚本实现查询火车票工具
Jul 19 #Python
Python 判断文件或目录是否存在的实例代码
Jul 19 #Python
You might like
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
input 高级限制级用法
2009/03/26 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python实现的桶排序算法示例
2017/11/29 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
毕业生找工作的求职信范文
2013/12/24 职场文书
银行学习十八大感想
2014/01/11 职场文书
出差报告怎么写
2014/11/06 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
行政处罚决定书
2015/06/24 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫