题意: 计算一个字符串的中的最长的不含有重复字母的长度
解法: 尺取法的裸题了,维护2个指针l,r, 不断移动r指针,同时检查[l,r]是不是存在重复的了,如果存在就移动l指针了
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int n = s.size();
int l=0, r=0;
set<char> S;
int ans=0;
while(true){
while(r<n){
if(S.count(s[r]))break;
S.insert(s[r++]);
}
ans = max(ans, r-l);
if(r>=n)break;
S.erase(s[l++]);
}
return ans;
}
};