基本思想:
老生常谈题,双指针+map;
具体代码:
class Solution {
public:
int lengthOfLongestSubstringTwoDistinct(string s) {
map<char,int>record;
int l=0,r=0;
int diff=0;
int maxn=0;
while(r<s.size()){
char c=s[r];
if(record[c]==0){
diff++;
}
record[c]++;
if(diff>2){
//strans;
while(diff>2){
record[s[l]]--;
if(record[s[l]]==0)
diff--;
l++;
}
}
maxn=max(maxn,r-l+1);
r++;
}
return maxn;
}
};