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

示例 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 = 0

for 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 ,方便的判断最长公共子串。

def mfun2(strs):

ans = ''# 定义空字符串,准备用来存放最长公共子串

for i in zip(*strs):# *strs 将列表解包成几个字符串元素

if len(set(i)) == 1:# 判断zip后的元素的集合的长度,如果=1,

# 说明几个字母相等,追加到最长公共子串中

ans += i[0]

else:# 否则就是不相等。

break

return ans

zip函数解析:

zip(iterable, iterable, ...)

# zip的参数是多个迭代器, 返回值为 几个元组作为元素的列表。

# zip 类似于矩阵操作: 例如:

zip('123', '456', '789')

操作过程:

1 2 3

4 5 6

7 8 9

====> 将行变成列,将列变成行,组成列表返回

1 4 7

2 5 8

3 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相关推荐

  1. LeetCode刷题记录_最长公共前缀

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

  2. 为什么mysql查询结果有前缀_字符串的公共前缀对Mysql B+树查询影响回溯分析

    年前项目组接微信公众号. 上线之后,跟微信相关的用cid列的查询会话的SQL变慢了几十倍!思考这个问题思考了非常久.从出现以来一直是我心头的一个结.cid这一列是建了索引的,普通的cid列更新都没问题 ...

  3. 查询字符串最长公共前缀

    题目 给定一组字符串,查询最长公共前缀 解法 /*** 最长公共前缀** @param str* @return*/private static String findLongestPrefix(St ...

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

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

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

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

  6. Python中最长公共前缀

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

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

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

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

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

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

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

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

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

最新文章

  1. LNMP架构之PHP——MemCache对PHP页面的缓存加速优化
  2. Servlet--03--servlet的生命周期
  3. 每日一博 - Spring Boot Application as a Service
  4. 在OpenPower720上安装SLES9(I)
  5. Boost:点质心的测试程序
  6. Debug解决问题方法论
  7. JGrid有用的收藏
  8. 语音识别免费的api
  9. php 如何执行top命令,批处理模式下运行 top 命令的方法
  10. [ExtJS5学习笔记]第22 Extjs5正在使用beforeLabelTpl添加所需的配置选项标注星号标记...
  11. Tuxera NTFS2023Mac读写ntfs磁盘工具
  12. MIMO技术(一)分集与复用
  13. 研究团队再次发现安全漏洞,微软警告Azure用户
  14. 数据爬取-奇技淫巧系列1——抓取隐藏在CDN,防爬代理等服务后面的数据
  15. USB设备驱动程序-USB Gadget Driver(四)
  16. input验证邮箱 css,jquery验证邮箱格式并显示提交按钮
  17. Matlab的GUI程序转换为单独可执行的exe文件
  18. PID控制算法实践应用(一):PID算法的离散化
  19. 每日一句—英语长难句
  20. OE(OSA)期刊模板下载

热门文章

  1. 搜狐狐友与腾讯微信两款社交软件的比较
  2. 《A Relation-Specific Attention Network for Joint Entity and Relation Extraction》论文
  3. 烧菜的基本技巧 来自d版
  4. 中国科学数学模板如何在CTEX和texstudio中顺利运行
  5. 索尼中兴,平井封神?(转)
  6. 从产品角度看人口政策和生育减少问题
  7. 网页实现中英文切换方式对比与实现
  8. 阿里云文字转语音接口
  9. 实验3:利用SVM实现线性高斯分类
  10. linux steam大屏幕模式,Steam 大屏幕模式 - Steam Support