编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
1 class Solution: 2 def longestCommonPrefix(self, strs: List[str]) -> str: 3 if not strs: 4 return "" 5 str0=min(strs) 6 str1=max(strs) 7 for i in range(len(str0)): 8 if str0[i]!=str1[i]: 9 return str0[:i] 10 return str0
通过先进行判断这个列表是否为空来判断是否继续下去,这个列表需要找到公共前缀需要我们看前缀是否相同,想到比较字符串的大小,找到最大、最小字符串,他们之间要不前缀相同,要不不同,中间的不影响判断最大的前缀要不和中间的相同,要不比它大所以不影响找相同前缀,用最大最小比较其中的字符返回相同字符。
1 s="" 2 >>> for i in zip(*strs): 3 if len(set(i))==1: 4 s=s+i[0] 5 print(s) 6 else:break
利用zip来使字符串一一对应成为元组,判断元组的元素是否相同。