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判断变量是否已经定义的方法
Aug 18 Python
python采集百度百科的方法
Jun 05 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
python的unittest测试类代码实例
Dec 07 Python
python如何实现一个刷网页小程序
Nov 27 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
python实现canny边缘检测
Sep 14 Python
Python实现我的世界小游戏源代码
Mar 02 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 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
多重?l件?合查?(二)
2006/10/09 PHP
简述php环境搭建与配置
2016/12/05 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python练习程序批量修改文件名
2014/01/16 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
pandas多级分组实现排序的方法
2018/04/20 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
求职简历的自我评价
2014/01/31 职场文书
迎八一活动主题
2014/01/31 职场文书
工地安全检查制度
2014/02/04 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android