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 相关文章推荐
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
Python 的内置字符串方法小结
Mar 15 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
关于Python数据结构中字典的心得
Dec 04 Python
python简单验证码识别的实现方法
May 10 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
python实现人工智能Ai抠图功能
Sep 05 Python
Python continue语句实例用法
Feb 06 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
Python Map 函数的使用
Aug 28 Python
基于tensorflow权重文件的解读
May 26 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制作简单的内容采集器的原理分析
2008/10/01 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
js停止输出代码
2008/07/20 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
Angular开发实践之服务端渲染
2018/03/29 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript
深入解析MySQL索引数据结构
2021/10/16 MySQL
Javascript webpack动态import
2022/04/19 Javascript
python blinker 信号库
2022/05/04 Python