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列出目录下指定文件与子目录的方法
Jul 03 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
python学习教程之使用py2exe打包
Sep 24 Python
python+pygame简单画板实现代码实例
Dec 13 Python
Python实现确认字符串是否包含指定字符串的实例
May 02 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
Python File(文件) 方法整理
Feb 18 Python
python中with用法讲解
Feb 07 Python
python文件及目录操作代码汇总
Jul 08 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
python3美化表格数据输出结果的实现代码
Apr 14 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中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
django框架auth模块用法实例详解
2019/12/10 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
自我评价如何写好?
2014/01/05 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
善意的谎言事例
2014/02/15 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
寄语学生的话
2014/04/10 职场文书
学习雷锋倡议书
2014/04/15 职场文书
安全责任书怎么写
2014/07/28 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
计划生育证明书写要求
2014/09/17 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
银行竞聘报告范文
2014/11/06 职场文书
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python