int numKLenSubstrNoRepeats(string S, int K) {
if (K > S.size())
return 0;
unordered_map<char, int> window;
int l = 0, r = 0;
bool flag1 = false;
int res = 0;
while (r < S.size()) {
if (!flag1) {
char c = S[r];
r++;
window[c]++;
}
bool flag2 = false;
for (auto it:window) {
if (it.second > 1) {
//当前窗口包含重复字符
flag2 = true;
break;
}
}
if (flag2) {
window[S[l]]--;
l++;
flag1 = true;
} else {
if (r - l == K)
res++, window[S[l++]]--;
flag1 = false;
}
}
return res;
}
1100. 长度为 K 的无重复字符子串
最新推荐文章于 2023-08-11 17:00:08 发布