思路1:取第二个和第一个比较,找出最长前缀,然后后面的逐渐遍历比较
find函数:str1.find(str2, beg=0, end=len(string))
检查str2
是否在str1
中,找得到返回索引,找不到返回-1
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
res=strs[0]
i=1
while i<len(strs):
#如果res在s[1]中,那就使res一直减少,直到跳出循环
while strs[i].find(res)!=0:
res=res[0:len(res)-1]
i+=1
return res
思路2:先排序,直接比较差异最大的第一个和最后一个字符串即可
比思路一快很多
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
strs.sort()#排序默认按字母大小排
l=len(strs)
first=strs[0]
last=strs[-1]
res=""
for i in range(len(first)):
if i<len(last) and first[i]==last[i]:
res=res+first[i]
else:
break
return res