需求
编写一个函数来查找字符串数组中的最长公共前缀。
说明
所有输入只包含小写字母 a-z 。
如果不存在公共前缀,返回空字符串 ""。
示例 1
输入: ["flower","flow","flight"]
输出: "fl"
示例 2
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
解决思路
- 查找数组中最短的元素;
- 对最短元素进行遍历,与数组中元素的组成字母进行对比,直到不相等时,返回当前最长的前缀,即为公共前缀。
参考代码
def get_prefix(strs):
# 判断数组是否为空
if not strs:
return ''
# 寻找长度最短的字符
shortest = min(strs, key=len)
# 遍历最短字符
for key, letter in enumerate(shortest):
for s in strs:
if s[key] != letter:
return shortest[:key]
return shortest
a = ["flower","flow","flight"]
print(get_prefix(a))
fl