> 簡潔易懂講清原理,講不清你來打我~

輸入字串,找到無重複、最長、子串,輸出長度

![在這裡插入圖片描述](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;
}
};
```

> 喜歡簡潔易懂還能講清楚原理部落格的小夥伴就關注關注這個非常高產的博主呀,下次再會~