14.最长公共前缀
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
解题思路
前缀是公共的,可以从任意一个元素中获得。首先将第一个元素设置为基准元素。依次将基准元素和后面的元素进行比较,不断更新基准元素,直到基准元素和所有元素都满足最长公共前缀的条件。
def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs) < 1:
return ''
res = strs[0]
for i in range(1, len(strs)):
if res == strs[i]:
continue
left = len(strs[i])
target = strs[i]
while left:
if res[:left] == target[:left]:
res = res[:left]
break
else:
left -= 1
if left == 0:
res = ''
break
return res
总结:时间复杂度 O(n*n)
reference
[1] leetcode 14.最长公共前缀 https://leetcode-cn.com/problems/longest-common-prefix/submissions/