题意:一个人在社交网络中发送信息,如果有连续三个xxx就认为不合法,就要删除一个,现在给你一个n个长度的字符串,让你输出最少的删除x的个数。
题解:贪心 (我认为就是模拟) 我们从第一个字符开始遍历,如果字符==x,就记录他的个数,如果有连续x大于3,我们就ans++,ans代表需要删除的个数,如果当前字符不为0,就把记录x的个数初始化为0.继续遍历下去。
#include<bits/stdc++.h> using namespace std; int main() { int n,ans=0,a=0; string s; cin>>n>>s; for(int i=0; i<n; i++) { if(s[i]=='x') { a++; if(a>2) ans++; } else a=0; } cout<<ans<<endl; return 0; }