#include<cstdio> #include<cstring> const int maxn=100010; const int MOD=1000000007; char str[maxn]; int leftnump[maxn]={0}; int main() { //gets(str); 只在纯C里才能通关PTA的点 scanf("%s",str);//注意这里。 int len=strlen(str); for(int i=0;i<len;i++) { if(i>0); { leftnump[i]=leftnump[i-1]; } if(str[i]==‘P‘){ leftnump[i]++; } } int ans=0,rightnumt=0; for(int i=len-1;i>=0;i--) { if(str[i]==‘T‘){ rightnumt++; } else if(str[i]==‘A‘){ ans=(ans+leftnump[i]*rightnumt)%MOD; } } printf("%d",ans); return 0; }
1040 有几个PAT (25分)/1093 Count PAT's (25分)
原文:https://www.cnblogs.com/leamant/p/13334454.html