给你一个字符串
气球有5种状态 R B Y G !
每4个气球状态都是 RBYG里分别一种
最后求出 ! 里面 RBYG 的个数
4是循环结
#include<stdio.h> #include<algorithm> #include<string.h> #include<math.h> #include<set> #include<string> using namespace std; typedef long long LL; #define inf 10000000000000 #define MAXN 100010 char str[MAXN]; bool vis[MAXN]; int r,y,b,g; int main() { while(scanf("%s",&str)!=EOF) { int len=strlen(str); memset(vis,0,sizeof(vis)); for(int i=0;i<len;i++) if(str[i]=='!') vis[i]=1; for(int i=0;i<len;i++) { if(str[i]!='!') { int j,k; j=k=i; while(j+4<len) { str[j+4]=str[i]; j+=4; } while(k-4>=0) { str[k-4]=str[i]; k-=4; } } } r=b=g=y=0; for(int i=0;i<len;i++) if(vis[i]==1) { if(str[i]=='R') r++; else if(str[i]=='B') b++; else if(str[i]=='G') g++; else y++; } printf("%d %d %d %d ",r,b,y,g); } return 0; }