题解见:http://ecustacm.cn/contest/11/announcements
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=2000010; int a[maxn],ans; char c[maxn]; int main() { int T,N,A,B,C,D,Ca=0; scanf("%d",&T); while(T--){ scanf("%s",c+1); N=strlen(c+1); A=B=C=D=0; rep(i,1,N){ if(c[i]=='4') A++; if(c[i]=='7') B++; if(i<N&&c[i]=='4'&&c[i+1]=='7') C++; if(i<N&&c[i]=='7'&&c[i+1]=='4') D++; } printf("Case %d: %d %d %d %d\n",++Ca,A,B,C,D); } return 0; }