#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
const int mod=1e9+7;
int p[N],t[N];
int main(void)
{
string s; cin>>s;
s="0"+s;
for(int i=1;i<s.size();i++)
{
if(s[i]=='P') p[i]=p[i-1]+1;
else p[i]=p[i-1];
if(s[i]=='T') t[i]=t[i-1]+1;
else t[i]=t[i-1];
}
t[s.size()]=t[s.size()-1];
int ans=0;
for(int i=1;i<s.size();i++) if(s[i]=='A') ans=(ans+p[i-1]*(t[s.size()]-t[i]))%mod;
cout<<ans;
return 0;
}
【PAT乙级】1040 有几个PAT (25 分)
最新推荐文章于 2022-02-22 09:11:19 发布