编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
这是一个简单题(???对我来说,可能并不简单),实际做的时候发现,根本不会,自己的暴力解超出了时间限制,做了许久,只能看解析。
!!!看解析我都看不大懂,哭,这就是简单题的威力吗?
图解很好懂,但具体实现就比较费解。今天把答案贴上来,加上自己的注释理解。
一、首先是官方的横向扫描法
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
prefix, count = strs[0], len(strs)#先将第一个元素设置为公共前缀
for i in range(1, count):#从第二个元素开始遍历,更新其公共前缀
prefix = self.lcp(prefix, strs[i])
if not prefix:
break
return prefix
def lcp(self, str1, str2):
length, index = min(len(str1), len(str2)),