起先,看到这道题目一头雾水,只能参考网上的博客(https://blog.csdn.net/shiliang97/article/details/100015080)了。代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int p[N],cnt=0;
long long total=0;
int main(){
string s;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='P')cnt++;
else if(s[i]=='A')p[i]=cnt;
}
cnt=0;
for(int i=s.size()-1;i>=0;i--){
if(s[i]=='T')cnt++;
else if(s[i]=='A') total=(total+(p[i]*cnt)%1000000007)%1000000007;
}
cout<<total;
return 0;
}