class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs: return ""
str0 = min(strs)
str1 = max(strs)
for i in range(len(str0)):
if str0[i] != str1[i]:
return str0[:i]
return str0
求问为什么这种写法可以通过?
看作者的想法好像是想找出最长和最短的两个字符,通过找到是否存在公前缀的骚方法去判断全部字符,不过这种解法会存在一个漏洞就是当 strs=["flower","flow","flight"],找出来的最长会是 flower。而且找最长和最短字符应该是这样写 “min(strs,key=len)”,直接 min 和 max 比较的是字符对应的 ASCII 码。
但是目前很骚的是,这样写居然通过了全部测试,当用例是 strs=["flower","flow","flight"] 时,min(strs) 是等于 “flight” 避开了这个用例,,,,,,看不懂。求下大佬解释下这解法的意思,看晕了