原文链接见:http://www.jianshu.com/p/65291de1906b
#include <stdio.h>
int main ( )
{
int P=0, A=0, PA=0, PAT=0 ;
char c ;
int i = 0 ;
while ( ( c = getchar ( ) ) != EOF )
{
if ( c == 'P' ) P++ ;
if ( c == 'A' ) PA = ( PA + P ) %1000000007 ;
if ( c == 'T' ) PAT = ( PAT + PA ) % 1000000007 ;
}
printf("%d\n",PAT );
return 0;
}
/*
每个A对应的PA组合数量是A之前P的数量;
每个T对应的PAT组合数量是T之前所有A对应的PA组合数量的累加;
所有的PAT组合数量是所有T对应的PAT组合数量的累加.
*/