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列表操作之extend和append的区别实例分析
Jul 28 Python
Python使用PIL库实现验证码图片的方法
Mar 11 Python
Python实现约瑟夫环问题的方法
May 03 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python动态语言与鸭子类型详解
Jul 01 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
使用python turtle画高达
Jan 19 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
浅析python连接数据库的重要事项
Feb 22 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 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批量生成随机用户名
2008/07/10 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
django实现用户登陆功能详解
2017/12/11 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python实现简单多人聊天室
2018/12/11 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
2014庆六一活动方案
2014/03/02 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
68句权威创业名言
2019/08/26 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL