Python求一批字符串的最长公共前缀算法示例


Posted in Python onMarch 02, 2019

本文实例讲述了Python求一批字符串的最长公共前缀算法。分享给大家供大家参考,具体如下:

Python求一批字符串的最长公共前缀算法示例

思路一:这个题一拿到手,第一反应就是以第一个字符串strs[0]为标准,如果其他字符串的第一个字符和str[0]的第一个字符串相同,则再比较第二个字符串,以此类推直到出现不同为止。

def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    if not strs:
      return ""
    first_str = strs[0]
    other_strs = strs[1:]
    prefix = ""
    for i in first_str:
      prefix += i
      for s in other_strs:
        if not s.startswith(prefix):
          return prefix[:-1]
    return prefix

思路二:第二种方法,就是先比较前两个字符串,求出他们的最长公共前缀,再用这个前缀去跟第三个字符串比较求出新的公共前缀,以此类推

class Solution(object):
  def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    if not strs:
       return ""
    if len(strs) == 1:
      return strs[0]
    prefix = strs[0]
    for i in range(len(strs)-1):
      if not prefix:
        return ""
      prefix = self.getCommonPrefix(prefix,strs[i+1])
    return prefix
  #先定义一个函数求出两个字符串的最长公共前缀
  def getCommonPrefix(self,str1,str2):
    if not str1 or not str2:
      return ""
    prefix = ""
    for s in str1:
      prefix += s
      if not str2.startswith(prefix):
        return prefix[:-1]
    return prefix

不过测试了一下,第一种方法还要快一点。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 初始化多维数组代码
Sep 06 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
python实现ping的方法
Jul 06 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
使用python编写监听端
Apr 12 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
Python3简单实现串口通信的方法
Jun 12 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
django 装饰器 检测登录状态操作
Jul 02 Python
谈谈python垃圾回收机制
Sep 27 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 #Python
python实现转圈打印矩阵
Mar 02 #Python
python实现顺时针打印矩阵
Mar 02 #Python
python实现二维数组的对角线遍历
Mar 02 #Python
python实现矩阵打印
Mar 02 #Python
python实现杨氏矩阵查找
Mar 02 #Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 #Python
You might like
几个学习PHP的网址
2006/11/25 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jQuery性能优化的38个建议
2014/03/04 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
JS获取时间的方法
2015/01/21 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
详解python之配置日志的几种方式
2017/05/22 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
护理学中专毕业生求职信
2013/11/11 职场文书
初中语文教学反思
2014/02/02 职场文书
机房搬迁方案
2014/05/01 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
校园演讲稿汇总
2014/05/21 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL