题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,给一个由 0 和 1 组成的字符串,求其中所有的子字符串数量,但子字符串必须满足 0 1 最多为 K 的限制。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考解法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int countKConstraintSubstrings(string s, int k) {
int rec[2]{};
int left = 0, ans = 0;
for(int right = 0; right < s.size(); right++) {
rec[s[right]-'0']++;
while(rec[0] > k && rec[1] > k) {
rec[s[left++]-'0']--;
}
//cout << left << " " << right << " " << s.substr(left, right-left+1) << endl;
ans += right-left+1;
}
return ans;
}
};