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;
}