编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
【简单】
【分析】暴力法。直接比较各单词前面的字符是否相同,相同则往下继续比较,不同则跳出得到最长公共前缀。
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs)==0:
return ''
if len(strs)==1:
return strs[0]
i=0
flag=0 #标识是否有字符不相等
n=min(len(_) for _ in strs)
while i<n:
for word in strs[1:]:
if word[i]==strs[0][i]:
continue
else:
flag=1
break
if flag==1:
break
i+=1
return strs[0][:i]
【分析其他方法】这道题更重要的是还有其他很好的算法。