题目
要点
其实本题是找所有一个列表中所有元素的公共子集,也就是最小是空集(""),最大是最短元素。那我们则需要比较最小长度的元素和最大长度的元素,看它们有多少相同。
解题
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs: return "" #如果没有元素,返回空集
min_letter = min(strs) #最小元素
max_letter = max(strs) #最大元素
for i, x in enumerate(min_letter):
if x != max_letter[i]:
return min_letter[:i] #返回最小元素的最大子集长度
return min_letter #最大元素的一部分和最小元素全部相等时,返回最小元素
复杂度
时间复杂度:O(min_letter)
空间复杂度: O(n)