浅谈Leetcode14
本帖最后由 Cccf$ 于 2022-11-22 18:09 编辑一题目描述:
https://fishc.com.cn/forum.php?mod=image&aid=162415&size=300x300&key=e9c58f5694c9d439&nocache=yes&type=fixnone
二思路分析:
通读题目可以发现这是一个简单题,关键在于如何减少内存和时间的花费。
1.题目要求公共前缀,这要求我们遍历strs以及其每个元素嵌套的字符串,再进行比对。
2.关于比对,我们不能傻乎乎的跨元素比对,效率太低下,比对要求是字母相同,从这一点我们应该想到集合唯一性。
3.那我们如何将strs每个元素里的字母按顺序放在同一个集合里利用唯一性呢,内置函数zip前来报到。
4利用'*'在实参里的解包作用得到len(min(strs,key=lambda x : len(x)))个集合构成的列表
5遍历这个列表,轻松得倒result
代码及提交结果:
class Solution:
def longestCommonPrefix(self, strs: List) -> str:
result = ''
for i in zip(*strs):
if len(set(i)) == 1:
result += i
else:
break
return resulthttps://fishc.com.cn/forum.php?mod=image&aid=162419&size=300x300&key=387825a9453f625f&nocache=yes&type=fixnone
页:
[1]