leetcode3——无重复字符的最长子串(滑动窗口)
作者:互联网
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
1. 思路
2. 代码
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if len(s) == 0:return 0
if len(s) == 1:return 1
m = len(s)
hashset = set()
ans = 0
left = 0 # 右指针初始化为0
for i in range(m):
# i为左指针,每次操作向右移一格
if i!= 0:
hashset.remove(s[i-1])
# 操作右指针
while left < m and s[left] not in hashset:
hashset.add(s[left])
left += 1
# 此时left值为while循环中不合法的,所以不用left - i + 1
ans = max(ans,left - i)
return ans
标签:子串,return,leetcode3,hashset,len,ans,滑动,指针,left 来源: https://blog.csdn.net/weixin_44441131/article/details/114224910