python3面试-查找字符串数组中的最长公共前缀
2021/6/14 1:22:24
本文主要是介绍python3面试-查找字符串数组中的最长公共前缀,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题
编写一个函数来查找字符串数组中的最长公共前缀。
空字符串“”
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]输出: ""
解释:输入列表不存在公共前缀,返回“”
解决思路
先找出最短的字符串,再遍历判断该字符串每个元素的前面索引位置的元素,跟其他字符串是不是一样,如果不是一样结束循环。
代码:
a=["flower","flow","flight"] # a=["dog","racecar","car"] cd,zcd=len(a),len(a[0]) for i in a[1:]: if zcd>len(i): zcd=len(i) # print(zcd) news="" for m in range(zcd): flag=False for i in range(cd-1):#2;取值0,1 if a[i][m]!=a[i+1][m]: flag=True break elif i==cd-2: news += a[i][m] if flag: break print(news)
运行结果
fl
升级版代码
写的过程中页去掉了很多冗余,代码运行效率也提升了
def get_commonstr(a): if len(a)==0: return "" cd,zcd=len(a),len(a[0]) news=""#公共字符串 for i in a[1:]: if zcd>len(i): zcd=len(i) #最短字符串长度 news=i #最短字符串 for m in range(zcd): flag=False #退出外部循环标志 for i in a:#2;取值0,1 if news[m]!=i[m]: #根据字符位置比较是否相等 news=news[:m] flag=True break if flag: break return news s1=["fliower","fliowe","flight"] s2=["dog","racecar","car"] if __name__=="__main__": print("结果:"+get_commonstr(s1)) print("结果:"+get_commonstr([]))
这篇关于python3面试-查找字符串数组中的最长公共前缀的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础
- 2024-09-2610 种方法写出更好的 Python 代码
- 2024-09-25Python编程基础详解
- 2024-09-25Python编程入门教程
- 2024-09-25从零开始使用Python构建LLaMA 3
- 2024-09-23Python中理解和使用树形结构的简单教程
- 2024-09-23Python 编程基础入门
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战