第一种 利用zip 和set (Python 特性,取每一个单词的同一位置的字母,看是否相同。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
res=""
for tep in zip(*strs):
tep_set=set(tep)
if len(tep_set)==1:
res+=tep[0]
else:
break
return re
第二种:取一个单词 s,和后面单词比较,看 s 与每个单词相同的最长前缀是多少!遍历所有单词
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
else:
res=strs[0]
i=1
while i<len(strs):
while strs[i].find(res)!=0:
res=res[0:len(res)-1]
i=i+1
return res
第三种:
按字典排序数组,比较第一个,和最后一个单词,有多少前缀相同。
用到了sort() pytho能够对字符串进行排序
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
else:
strs.sort()
a=strs[0]
b=strs[len(strs)-1]
res=""
for i in range(len(a)):
if i < len(b) and a[i]==b[i]:
res+=a[i]
else:
break
return res