> 简洁易懂讲清原理,讲不清你来打我~

输入字符串,找到无重复、最长、子串,输出长度

![在这里插入图片描述](https://img-blog.csdnimg.cn/c0565c943c6548c39302b99c0b231aac.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/bea5ff15136041b580c8b1ca2bb5affa.png)

> 滑动窗口/双指针

left、right指针维护滑动窗口是无重复、子串,用哈希集有且仅有存储窗口内全部字符,while不断尝试扩大窗口,当无法继续扩大就更新最长长度再收缩窗口

```cpp
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int left=0,right=-1,ans=0;
unordered_set<char>window;
for(int left=0;left<s.size();left++){
while(right+1<s.size()&&!window.count(s[right+1])){
++right;
window.insert(s[right]);
}
ans=max(ans,right-left+1);
window.erase(s[left]);
}
return ans;
}
};
```

> 喜欢简洁易懂还能讲清楚原理博客的小伙伴就关注关注这个非常高产的博主呀,下次再会~

posted on 2021-07-24 00:00  offer快到碗里来~  阅读(30)  评论(0)    收藏  举报