思路:
从后向前,记录T的个数,当遇到A字母时候,可以组成t个 "at"记录为pid ,当遇到P字母时候,可以利用之前pid个"at"组成pid个"pat
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
ll t,a,res;
int main()
{
t=a=res=0;
string s;
cin>>s;
ll pid=0;
for(int i=s.size()-1;i!=-1;i--)
{
if(s[i]=='T')
t++;
else if(s[i]=='A')
pid+=t;
else
{
res+=pid;
res%=mod;
}
}
cout<<res<<endl;
}