面试题-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

return common_str

if __name__ == '__main__':
a = ["flower", "flow", "flight"]
print(get_common_str(a))
b = ["dog", "racecar", "car"]
print(get_common_str(b))

面试题-python3 字符串消消乐,将字符串中相邻相同的字符一起消掉

面试题-python3 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组

面试题-python3 实现删除字符串中出现次数最少的字符

面试题-python3 找出一个字符串中所有子串是回文的次数

面试题-python3 找出列表中出现的所有连续数字

面试题-python3 找出一个字符串中子串,不含有重复字符的最长子串

python 面试题-收集100+面试题笔试题

2021年第七期《python接口自动化+测试开发》课程,4月18号开学(火热报名中!)

本期上课时间:4月18号-7月11号,每周六、周日晚上20:30-22:30

(0)

相关推荐