编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

SRE实战,互联网时代守护先锋!让网站飞一会, 阿里云优惠促销大全。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"
示例 2:

输入: ["dog","racecar","car"]
输出: ""

解释: 输入不存在公共前缀。
说明:

所有输入只包含小写字母 a-z 。

方法一:

 1 class Solution:
 2     def longestCommonPrefix(self, strs: List[str]) -> str:
 3         result = ""
 4         i = 0
 5         while True:
 6             try:
 7                 #使用set方法,查找第 i 个位置不同的字母有多少个 
 8                 sets = set(item[i] for item in strs )
 9                 #如果个数为 1 则并入到 result 中,并从set中删除保留的哪一个数据
10                 if len(sets) == 1:
11                     result += sets.pop()
12                     i += 1
13                 else:break
14             except Exception:
15                 break
16         return result

方法二:

1 class Solution:     #查找最大公共前缀
2     def longestCommonPrefix(self, strs):
3         if not strs:
4             return ""
5         for i in range(len(strs[0])):
6             for item in strs[1:]:
7                 if i >= len(item) or item[i] != strs[0][i]:
8                     return strs[0][:i]
9         return ""

 



 

 

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix