找出不含有重複的最長字符
用 set 紀錄,已經在窗口的文字
控制窗口的左右指針:左指針用 left 紀錄,右指針用 right(跑 for 迴圈)紀錄
for 迴圈內可以分為:
class Solution {
public:
int lengthOfLongestSubstring(string s) {
unordered_set<char> set;
int n = s.size();
// NOTE01:
int left = 0;
int ans = 0;
for(int right=0;right<n;right++){
// 透過左指針移除資料
while(set.count(s[right])){
set.erase(s[left]);
left++;
}
set.insert(s[right]); // 透過右指針加資料
ans = max(ans, right-left+1); // 重新比對
}
return ans;
}
};