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中atexit模块的基本使用示例
Jul 08 Python
Python正规则表达式学习指南
Aug 02 Python
利用Python实现网络测试的脚本分享
May 26 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
Python返回数组/List长度的实例
Jun 23 Python
python2.7实现邮件发送功能
Dec 12 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
python里反向传播算法详解
Nov 22 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 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
2006/10/09 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
实例Python处理XML文件的方法
2015/08/31 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
python 安装移动复制第三方库操作
2020/07/13 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
What is view? why do we have view?
2012/06/22 面试题
领导接待方案
2014/03/13 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
华清池导游词
2015/02/02 职场文书
离婚被告代理词
2015/05/23 职场文书
青春雷锋观后感
2015/06/10 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
golang 语言中错误处理机制
2021/08/30 Golang
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python