面试题-python3 查找字符串数组中的最长公共前缀
python测开笔试题
python测开笔试题: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]输出: ""
解释: 输入列表不存在公共前缀,返回""。
解决代码
解决思路,先找出最短的字符串,再遍历判断该字符串每个元素的前面索引位置的元素,跟其他字符串是不是一样,如果不是一样结束循环。
"""
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]输出: ""
解释: 输入列表不存在公共前缀,返回""。
"""
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
def get_common_str(list_a):
'''输入列表a,返回公共子串
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]输出: ""
'''
if len(list_a) == 0:
return ''
common_str = '' # 公共字符串
# 先找出最短的字符串
min_str = min(list_a, key=lambda x: len(x))
# print(min_str) # 最短的字符串flow
for i in range(len(min_str)):
flag = False # 退出外部循环标志
for j in list_a:
if min_str[i] != j[i]:
common_str = min_str[:i]
flag = True
break
if flag:
break
else:
return min_str
return common_str
if __name__ == '__main__':
a = ["flower", "flow", "flight"]
print(get_common_str(a))
b = ["dog", "racecar", "car"]
print(get_common_str(b))
优化版
strs = ["flower", "flow", "flight"]
result = ''
for i in strs[0]:
if all([i in j for j in strs]):
result += i
else:
break
print(result)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-05-12 Cypress web自动化14-window窗口属性
2020-05-12 Cypress web自动化13-viewport设置不同分辨率,适配不同设备,手机型号
2020-05-12 Cypress web自动化12-父子元素定位
2020-05-12 Cypress web自动化11-定位元素(Querying)
2020-05-12 Cypress web自动化10-Navigation 导航功能(go,reload,visit)
2020-05-12 Cypress web自动化9-聚焦元素focused,截图screenshot使用
2020-05-12 Cypress web自动化8-Cookies 使用