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-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程