PAT考试乙级1040(C语言实现)

#include
#include
int main(){
    int len,i,t=0,at=0,pat=0;
    char str[100000];
    gets(str);
    len = strlen(str);
    for(i=len-1;i>=0;i--){
        if(str[i]=='T'){
            t++;
        }
        if(str[i]=='A'){
            at=(at+t)%1000000007;
        }
        if(str[i]=='P'){
            pat=(pat+at)%1000000007;
        }
    }
    printf("%d",pat);
    return 0;
}

总结:
重点是要从后往前找。注意at和pat需要%1000000007 不然两个测试点错误。

你可能感兴趣的:(PAT)