Leetcode 最大无重复子字符串
python 版
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
a = 0
ls = []
for i in s:
if i not in ls:
ls.append(i)
if len(ls)>a:
a = len(ls)
else :
t = ls.index(i)
del ls[0:t+1]
ls.append(i)
return a
或者窗口滑动,将暴力求解方法做了点简化,时间小于o(n**2)
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if len(s)<1:
return 0
a = 1
start = 0
end = 0
for i in range(len(s)):
if s[i] in s[start:end]:
start = s[start:end].index(s[i])+start+1
end = i+1
a = end - start if end-start > a else a
return a