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;
}