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的Twisted框架实现一个简单的服务器
Apr 16 Python
python集合用法实例分析
May 30 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
python放大图片和画方格实现算法
Mar 30 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
python os.fork() 循环输出方法
Aug 08 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
Python类如何定义私有变量
Feb 03 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
Python 中如何写注释
Aug 28 Python
利用Python函数实现一个万历表完整示例
Jan 23 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 MySQL与分页效率
2008/06/04 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
用Python编写web API的教程
2015/04/30 Python
python获取引用对象的个数方式
2019/12/20 Python
jupyter notebook清除输出方式
2020/04/10 Python
Python 如何批量更新已安装的库
2020/05/26 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
企业后勤岗位职责
2014/02/28 职场文书
市场部经理岗位职责
2014/04/10 职场文书
物业管理专业求职信
2014/06/11 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
汽车转让协议书范本
2014/12/07 职场文书
领导干部考核评语
2015/01/04 职场文书
单位综合评价意见
2015/06/05 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang