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练习程序批量修改文件名
Jan 16 Python
Python使用django搭建web开发环境
Jun 09 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
解决python tkinter界面卡死的问题
Jul 17 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
python 监测内存和cpu的使用率实例
Nov 28 Python
python中return的返回和执行实例
Dec 24 Python
Python实现CNN的多通道输入实例
Jan 17 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
通过代码实例了解Python sys模块
Sep 14 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 Python
Prometheus开发中间件Exporter过程详解
Nov 30 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启用zlib压缩文件的配置方法
2013/06/12 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php中动态变量用法实例
2015/06/10 PHP
试用php中oci8扩展
2015/06/18 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
详解Immutable及 React 中实践
2018/03/01 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
python中的列表与元组的使用
2019/08/08 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
婚前协议书怎么写
2014/04/15 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
医院党建工作总结2015
2015/05/26 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技