求解思路
逆序遍历输入字符串,记录每个A后面T的个数,每个P后面AT的个数
C++源码
#include<iostream>
#include<string>
using namespace std;
int main()
{
string pat;
int sumA = 0, sumT = 0, sumAT = 0;
long long sumPAT = 0;
cin>>pat;
for(int i = pat.length() - 1; i >= 0; i--)
{
if(pat[i] == 'T')
{
sumT++;
}
else if(pat[i] == 'A')
{
sumA++;
sumAT += sumT;
}
else if(pat[i] == 'P')
{
sumPAT += sumAT;
}
}
cout<<sumPAT%1000000007<<endl;
return 0;
}