159. Longest Substring with At Most Two Distinct Characters
class Solution {
public:
int lengthOfLongestSubstringTwoDistinct(string s) {
vector<int> cnt(256, 0);
int dis = 0, idx = 0, res = 0;
for (int i = 0; i < s.size(); i++) {
if (!cnt[s[i]]) {
while (dis >= 2 && idx < i) {
cnt[s[idx]]--;
dis -= cnt[s[idx++]] == 0;
}
dis++;
}
cnt[s[i]]++;
res = max(res, i - idx + 1);
}
return res;
}
};