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分析git log日志示例
Feb 27 Python
Python基于DES算法加密解密实例
Jun 03 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
Python 中 list 的各项操作技巧
Apr 13 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
Python魔术方法专题
Jun 19 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 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+javascript液晶时钟
2006/10/09 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
PHP中each与list用法分析
2016/01/08 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
浅析vue数据绑定
2017/01/17 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
师范大学应届生求职信
2013/11/21 职场文书
车间调度岗位职责
2013/11/30 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
高温慰问简报
2015/07/21 职场文书
工程主管竞聘书
2015/09/15 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
nginx安装以及配置的详细过程记录
2021/09/15 Servers