题目
题目详情
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
解题思路
- 只要取出最大的字符串和最小的字符串,那么就可以代表整组的字符串求最长公共前缀了。
- 再求出最长和最短字符串的最长前缀就可以了
代码
class Solution:
def longestCommonPrefix(self, strs):
if not strs: return ""
s1 = min(strs) #最小
s2 = max(strs) #最大
for i,x in enumerate(s1):
if x != s2[i]: #判断条件
return s2[:i]
return s1
运行结果
最佳方案
32ms
class Solution:
def longestCommonPrefix(self, strs: 'List[str]') -> 'str':
if not strs:
return''
if len(strs)==1:
return strs[0]
strs.sort()
p=''
for x,y in zip(strs[0],strs[-1]):
if x==y:
p+=x
else:
break
return p