int lengthOfLongestSubstringTwoDistinct(string s) {
unordered_map<char, int> window;
int l = 0, r = 0;
bool flag1 = false;
int maxNum = 0;
while (r < s.size()) {
if (!flag1)
window[s[r++]]++;
bool flag2 = false;
int count = 0;
for (auto it:window) {
if (window[it.first] > 0)
count++;
if (count > 2) {
flag2 = true;
break;
}
}
if (flag2) {
//不满足条件
//减小窗口
window[s[l++]]--;
flag1 = true;
} else {
flag1 = false;
maxNum = max(maxNum, r - l);
}
}
return maxNum;
}
159. 至多包含两个不同字符的最长子串
最新推荐文章于 2023-08-11 12:04:12 发布