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标准库之sqlite3使用实例
Nov 25 Python
Python中的ConfigParser模块使用详解
May 04 Python
Python中http请求方法库汇总
Jan 06 Python
linux下python使用sendmail发送邮件
May 22 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python读取目录下最新的文件夹方法
Dec 24 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
python不同系统中打开方法
Jun 23 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
selenium+headless chrome爬虫的实现示例
Jan 08 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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP面向对象法则
2012/02/23 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
8个PHP数组面试题
2015/06/23 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
浅析Python3 pip换源问题
2020/01/06 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
python3跳出一个循环的实例操作
2020/08/18 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
高三自我鉴定
2013/10/23 职场文书
年会活动策划方案
2014/01/23 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
解除财产保全担保书
2014/05/20 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
小学生交通安全寄语
2015/02/27 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL