int numberOfSubstrings(string s) {
vector<int> v(3, 0);
int ans = 0;
int l = 0, r = 0;
bool flag1 = false;
while (r < s.size() + 1) {
if ((v[0] == 0 || v[1] == 0 || v[2] == 0) && r == s.size())
break;
if (!flag1)
v[s[r++] - 'a']++;
bool flag2 = false;
if (v[0] > 0 && v[1] > 0 && v[2] > 0)
flag2 = true;
if (flag2) {
flag1 = true;
ans += s.size() - r + 1;
v[s[l++] - 'a']--;
} else
flag1 = false;
}
return ans;
}
1358. 包含所有三种字符的子字符串数目
最新推荐文章于 2024-05-01 14:05:20 发布