Python实现查找字符串数组最长公共前缀示例


Posted in Python onMarch 27, 2019

本文实例讲述了Python实现查找字符串数组最长公共前缀。分享给大家供大家参考,具体如下:

编写一个函数来查找字符串数组中的最长公共前缀。

class Solution:
  def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    olds = ''
    rs=''
    if not strs:
      return ''
    if len(strs)==1:
      return strs[0]
    over = False
    print("strs_len:", len(strs))
    i=0 # 单个字符的索引
    while True:
      j=0 # strs中字符串的索引
      while j < len(strs)-1:
        if not strs[j] or not strs[j+1]:# 若是空串
          break
        #print("s1:",len(strs[j]), " s2:", len(strs[j+1]))
        if i >= len(strs[j]): # 如果一个子串比较完了,则结束循环
          over = True
          break
        elif i >= len(strs[j+1]):
          j+=1
          over = True
          break
        else:
          over = False
        #print("j:",j,"i: ",i)
        if strs[j][i] != strs[j+1][i]:
          break
        j+=1
      #print("j2:",j)
      if not over and j!=(len(strs)-1): # 如果没有比较到最后,说明前面出现了不相等的子串
        break
      #print("j:",j,"i: ",i)
      if over: # 如果一个子串已经比较结束,结束循环
        rs=strs[j]
        break
      i+=1
      rs=strs[0][:i]
      print("rs:",rs)
    return rs

我实现的方法,相当笨,后来通过测试后,我发现原来系统中有现成的接口是现实这个功能,如下:

os.path.commonprefix(list)

返回list中,所有元素共有的最长的前缀

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

Python 相关文章推荐
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
python文件的md5加密方法
Apr 06 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
Flask-Mail用法实例分析
Jul 21 Python
Python中is和==的区别详解
Nov 15 Python
详解用python写一个抽奖程序
May 10 Python
python实现五子棋游戏
Jun 18 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
详解python中@的用法
Mar 27 #Python
详解python列表生成式和列表生成式器区别
Mar 27 #Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 #Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 #Python
python模块之subprocess模块级方法的使用
Mar 26 #Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 #Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 #Python
You might like
简单易用的计数器(数据库)
2006/10/09 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
php object转数组示例
2014/01/15 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
python生成随机mac地址的方法
2015/03/16 Python
详解python读取和输出到txt
2019/03/29 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
小学教师自我鉴定
2013/11/07 职场文书
机械制造毕业生求职信
2014/03/03 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
老人节主持词
2015/07/04 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
高中生物教学反思
2016/02/20 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python