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将人民币转换大写的脚本代码
Feb 10 Python
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
python使用锁访问共享变量实例解析
Feb 08 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
python内置函数sorted()用法深入分析
Oct 08 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
python tkinter实现下载进度条及抖音视频去水印原理
Feb 07 Python
Django实现简单的分页功能
Feb 22 Python
python获取淘宝服务器时间的代码示例
Apr 22 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的可变变量名的使用方法分享
2012/02/05 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
php魔术变量用法实例详解
2014/11/13 PHP
微信支付开发发货通知实例
2016/07/12 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
VBScript版代码高亮
2006/06/26 Javascript
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
jquery 常用操作方法
2010/01/28 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
华为c/c++笔试题
2016/01/25 面试题
最新的大学生找工作自我评价
2013/09/29 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
小学开学标语
2014/07/01 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
初中毕业生感言
2015/07/31 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS