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 18 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
python判断设备是否联网的方法
Jun 29 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
Python玩转加密的技巧【推荐】
May 13 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
python输出pdf文档的实例
Feb 13 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
Python实现打乒乓小游戏
Sep 25 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分页显示制作详细讲解
2006/12/05 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
Javascript复制实例详解
2016/01/28 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
Vue组件化开发思考
2018/02/02 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python中operator模块的操作符使用示例总结
2016/06/28 Python
import的本质解析
2017/10/30 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
python实现贪吃蛇双人大战
2020/04/18 Python
python实现银行账户系统
2021/02/22 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
最新个人职业生涯规划书
2014/01/22 职场文书
保险公司晨会主持词
2014/03/22 职场文书
门店店长岗位职责
2015/04/14 职场文书
大学入学感言
2015/08/01 职场文书
优质护理服务心得体会
2016/01/22 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs