题目:编写一个函数查找字符串数组中的最长公共前缀
法1:对字符串排序,对于每个字符都是按字典序排,这样第一个字符和最后一个字符的差距也就最大,找到他俩的最长公共前缀就是整个数组的最长公共前缀
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
length1=len(strs)
res=''
if length1==0:
return ''
elif length1==1:
return strs[0]
else:
strs.sort()
length2=min(len(strs[0]),len(strs[-1]))
for i in range(length2):
if strs[0][i]==strs[-1][i]:
res+=strs[0][i]
else:
break
return res
法2:不用排序,将每个字符按位置比较即可
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
length1=len(strs)
res=''
if length1==0:
return ''
elif length1==1:
return strs[0]
else:
minlen=min([len(x) for x in strs])
for j in range(minlen):
for i in range (length1-1):
if strs[i][j]!=strs[i+1][j]:
return res
res+=strs[0][j]
return res