PTA | 1040 有几个PAT 分数 25

218 阅读1分钟

PTA | 程序设计类实验辅助教学平台 (pintia.cn)

思想

求有多少个PAT,我们需要把A前面的P的个数 * A后面的T 的个数,就可以求出PAT 的个数。

解析:1106 2019数列 – PAT乙级真题 – 柳婼 の blog (liuchuo.net)

#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007

int cnt_P,cnt_T,cnt_A,res;
int main()
{
    string s;cin>>s;
    for(int i=0;i<s.size();i++)
        if(s[i]=='T')cnt_T++;

    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='P')cnt_P++;
        else if(s[i]=='T')cnt_T--;
        else if(s[i]=='A')res=(res+ (cnt_P*cnt_T)%MOD)%MOD;
    }
    cout<<res;
    return 0;
}