求解思路
逆序遍歷輸入字符串,記錄每個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;
}