输入1:
6
xxxiii
输出1:
1
输入2:
5
xxoxx
输出2:
0
输入3:
10
xxxxxxxxxx
输出3:
8
题意:问需要删除多少个x才能使字符串内没有三个或以上连续的x。
思路:设一个cnt记录连续的x的个数,当遇到x的时候,cnt加一,否则清零。当cnt等于三的时候,代表已经有连续的三个x了,则删去一个x,cnt减一。将原来字符串的长度减去删减完的长度就是答案
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int tt = 1;
// cin >> tt;
while(tt--){
int len; cin >> len;
string s; cin >> s;
int cnt = 0;
for(int i = 0; i < s.length(); i++){
if(s[i] == 'x') cnt++;
else cnt = 0;
if(cnt == 3){
cnt--;
s.erase(s.begin() + i);
i--;
}
}
printf("%d\n", len - s.length());
}
}