Leetcode 14. Longest Common Prefix
分类 string
两个思路
一:利用zip函数将字符串数组合并,得到的第一个值就为所有字符串首字母的组合,第二个值则为第二个字母的组合,当利用set函数发现有组合中有不同的字符时则说明已找到最长前缀。当遍历结束后发现都符合,则返回最短的那个字符串就好了。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ''
for i, c_group in enumerate(strs):
if len(set(c_group)) > 1:
return strs[0][:i]
else:
return min(strs)
二:学习下python中自带的函数os.path.commonprefix(strs)
min max将字符串数组按字母顺序排出最小最大,因为寻找公共最长前缀,因此之后只需比较它两个就好。实现方式如下。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ''
s1 = min(strs)
s2 = max(strs)
for i, c in enumerate(s1):
if s2[i] != c:
return s1[:i]
return s1
注意判断传入的数组参数是否为空