最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。

示例

1:输入: [“flower”,“flow”,“flight”]输出: "fl"示例
2:输入: [“dog”,“racecar”,“car”]输出: ""解释: 输入不存在公共前缀。

思路1:
可循环遍历列表中每个字符串,判断字符串相同的位置的字母是否相等,如果相等则记录字母并判断下一个字母,否则就返回记录的字符串。

mls1 = ["flower","flow","flight"]
mls1 = ["dog","racecar","car"]def mfun(mls1):mls2 = []      # 用来记录相同的字母if len(mls1) == 0:return ''  # 如果列表为空,直接返回num = 0for k in mls1:      # 循环字符串,找到最短的长度,作为最长公共子串的最长长度if len(k) > num:num = len(k)for i in range(num): # i 为下标值for j in mls1:      # 将列表中每个字符串的第 i 个字母添加到列表中mls2.append(j[i])if (len(set(mls2))) == 1:   # 对列表进行集合操作,如果集合后长度为1 则# 这几个字母相同,继续判断下一个字母mls2.clear()else:           # 如果长度不为1, 最长公共子串已经找到,# print(i)if j[0:i:1]:  # 切片操作找到 最长公共子串return (j[0:i:1])else:return ""
print(mfun(mls1))

思路2:
可以运用Python 中的内置函数zip ,方便的判断最长公共子串。

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def mfun2(strs):ans = '' # 定义空字符串,准备用来存放最长公共子串for i in zip(*strs):    # *strs 将列表解包成几个字符串元素if len(set(i)) == 1: # 判断zip后的元素的集合的长度,如果=1,# 说明几个字母相等,追加到最长公共子串中ans += i[0]else:                    # 否则就是不相等。breakreturn ans

zip函数解析:

zip(iterable, iterable, ...)
# zip的参数是多个迭代器, 返回值为 几个元组作为元素的列表。
# zip 类似于矩阵操作: 例如:
zip('123', '456', '789')操作过程:1  2  3 4  5  67  8  9====>   将行变成列,将列变成行,组成列表返回1  4  72  5  83  6  9====> [(1, 4, 7), (2, 5, 8), (3, 6, 9)]for i in zip('123', '456', '789'):print(i)('1', '4', '7')
('2', '5', '8')
('3', '6', '9')>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者

Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者

Python中最长公共前缀相关推荐

  1. python查找最长公共前缀_Python实现查找字符串数组最长公共前缀示例

    本文实例讲述了Python实现查找字符串数组最长公共前缀.分享给大家供大家参考,具体如下: 编写一个函数来查找字符串数组中的最长公共前缀. class Solution: def longestCom ...

  2. 字符串最长公共前缀后缀长度

    首先,要了解两个概念:"前缀"和"后缀". "前缀"指除了最后一个字符以外,一个字符串的全部头部组合:"后缀"指除了第一 ...

  3. python查找公共前缀_Python实现查找字符串数组最长公共前缀示例

    本文实例讲述了Python实现查找字符串数组最长公共前缀.分享给大家供大家参考,具体如下: 编写一个函数来查找字符串数组中的最长公共前缀. class Solution: def longestCom ...

  4. 20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串...

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...

  5. 采用分治算法迭代计算最长公共前缀问题(python)

    题目 采用分治算法迭代计算最长公共前缀问题(python) 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串"". 示例 1: 输入:strs = ...

  6. leetcode--最长公共前缀--python

    文章目录 题目 题目详情 示例 解题思路 代码 运行结果 最佳方案 题目 题目详情 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 ...

  7. python【力扣LeetCode算法题库】14-最长公共前缀(列表解压)

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","fl ...

  8. 【Python】求多个字符串的最长公共前缀

    练习 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "" def long_str(li): # 支持中文字符 result='' for i i ...

  9. LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)

    题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...

最新文章

  1. 百度CTO王海峰服贸会展示AI新基建成果,飞桨获“科技创新服务示范案例”奖
  2. SQL优化—— 优化insert语句
  3. Java 多线程之 synchronized 和 volatile 的比较
  4. python数据处理与机器学习
  5. UVA1374 Power Calcilus快速幂计算
  6. 源码免杀-过启发式的思路
  7. Java编程思想 学习笔记1
  8. 2017年秋招美团Java程序员开发,看我如何拿到offer
  9. mysql 连续签到天数_最大连续签到天数-sql
  10. 月份第一天_4月份的第一天,全省迎来晴暖天气~
  11. 常用宏定义 - 系统相关
  12. linux nginx 状态,Nginx开启运行状态(status)功能 | IT运维网
  13. C++工作笔记-使用typeid获取对象的类名
  14. php 后期发展,php – 通过后期处理上传进度
  15. 64位mysql 和32位区别_32位和64位哪个好 区别的对比分析
  16. 正在构建的“大而全”的网络帝国 --- 腾讯
  17. 解决WinHTTP Web Proxy Auto-Discovery Service无法启动问题
  18. 百度bae部署html,百度BAE使用:应用配置文件 app.conf
  19. 【Codewars】Pick peaks
  20. 数学问题1 - 两个圆圈,小圆贴着大圆外部转过一圈,问小圆转几圈

热门文章

  1. 阿里2500万美元战略投资“神工007”,天猫全面布局建材家居新零售
  2. Linux命令行–基本的bash shell命令
  3. unix executable file
  4. iptables防***自动黑白名单脚本
  5. Intel3945ABG无线上网问题总结
  6. [你必须知道的.NET]第三十二回,,深入.NET 4.0之,Tuple一二
  7. java pdf添加透明水印_如何在PDF文件中添加透明水印
  8. 【学习笔记】Tableau安装与界面介绍
  9. 【温故知新】CSS学习笔记(行高简介)
  10. 【整理】ABAP 7.40新特性介绍(上)