题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
解题思路
应该找到列表中最短的字符串,用最短的字符串与其他字符串进行前缀匹配,并依次递减前缀数量。
代码实现
def longestCommonPrefix(self, strs: List[str]) -> str:
# 定义一个n,表示最短字符串的长度,用于后续循环次数
n = 1000
# 定义一个flag,用于标记是否遍历了列表所有元素
flag =0
# 找到最短字符串
for c in strs:
if len(c)<n:
n = len(c)
temp = c
# 循环n次
while n>0:
# 遍历列表
for s in strs:
# 若当前字符串的切片与最短字符串切片不相等,退出此次遍历
if s[0:n]!=temp[0:n]:
break
else:
flag+=1
continue
# 当flag等于列表长度时,表示列表中所有元素的指定位置前缀相等
if flag==len(strs):
return temp[0:n]
n-=1
flag=0
return temp[0:n]