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动态性强类型用法实例
May 09 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
深入浅析Python的类
Jun 22 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
python如何停止递归
Sep 09 Python
Manjaro、pip、conda更换国内源的方法
Nov 17 Python
Pytorch 实现变量类型转换
May 17 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 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
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
javascript Keycode对照表
2009/10/24 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
详解JavaScript树结构
2017/01/09 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python中如何引入第三方模块
2020/05/27 Python
利用python进行文件操作
2020/12/04 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
学生思想表现的评语
2014/01/30 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
销售求职信范文
2014/05/26 职场文书
行政求职信
2014/07/04 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android