无重复字符的最长子串- python
·

思路:
要求使用滑动窗口来写
- 初始化一个空字符串cur,从头遍历字符
- 若当前字符i不在cur中,加入cur,同时比较cur的长度和最长的长度,更新最大值
- 若当前字符i在cur中,通过一个循环把重复字符之前的全部移除并加上当前字符i
代码:
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
cur = "" #初始化空字符串
ans = 0 # 存最大的长度
for i in s: #遍历字符串
if i not in cur: #没有重复
cur += i #加入
n = len(cur) # 计算长度
if n > ans: #更新最大值
ans = n
else:
while cur and cur[0]!=i: #出现重复,一直循环去除重复字符之前的序列
cur = cur[1:]
cur = cur[1:]+i #因为去掉了原来的重复字符,加上当前字符
return ans
更多推荐
所有评论(0)