AcWing
3768. 字符串删减
区间维护。l是不为x的左端,r是当前位置,cnt保存总共要删除的x个数。当r的位置不是x时,将l更新到r;否则l到r之间都是x,如果当前它们的距离大于等于3,说明要删除的x数量cnt += 1.
#include <bits/stdc++.h>
using namespace std;
// 区间维护
int n;
string s;
int main(){
cin >> n >> s;
int l = -1, r = 0, cnt = 0;
while(r <= n - 1){
if(s[r] != 'x') l = r;
if(r - l >= 3) cnt++;
r++;
}
cout << cnt << endl;
return 0;
}