啊这个之前做过了的,却还是花了一个小时才调试出来??好啊,我是废物。具体思路见jz048吧太长了懒得打了。这个算法的时间复杂度是O(N),空间复杂度是O(1)。
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
pos = dict()
ans, cur = 0, 0
for i in range(len(s)):
if s[i] in pos and cur >= i - pos[s[i]]:
cur = i - pos[s[i]]
else:
cur += 1
pos[s[i]] = i
ans = max(ans, cur)
return ans
PREVIOUSmq026.两数相加
NEXTlc020.有效的括号