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利用hook技术破解https的实例代码
Mar 25 Python
对python3 urllib包与http包的使用详解
May 10 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
python tkinter实现屏保程序
Jul 30 Python
python redis连接 有序集合去重的代码
Aug 04 Python
Python configparser模块操作代码实例
Jun 08 Python
python中使用np.delete()的实例方法
Feb 01 Python
Python的collections模块真的很好用
Mar 01 Python
python实现简单区块链结构
Apr 25 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
python​格式化字符串
Apr 20 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读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
php获取url参数方法总结
2014/11/13 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
简单了解python PEP的一些知识
2019/07/13 Python
python实现桌面气泡提示功能
2019/07/29 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
开办加工厂创业计划书
2014/01/03 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
集中采购方案
2014/06/10 职场文书
世博会口号
2014/06/20 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
2016年党建工作简报
2015/11/26 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP