#include<iostream>
#include<string>
using namespace std;
#define MOD 1000000007
#define MAX_N 100005
int leftNum[MAX_N];//记录当前位置前P 的个数
int main(){
string s;
cin>>s;
for(int i=0;i<s.length();i++){
if(i>0){
leftNum[i]=leftNum[i-1];
}
if(s[i]=='P'){
leftNum[i]++;
}
}
int ans=0,rightNum=0;//A的个数
for(int i=s.length()-1;i>=0;i--){
if(s[i]=='T'){
rightNum++;
}
if(s[i]=='A'){
ans=(ans+leftNum[i]*rightNum)%MOD;
}
}
cout<<ans;
}
1040. 有几个PAT(25)PAT乙级&&1093. Count PAT's (25) PAT甲级
最新推荐文章于 2023-02-03 23:08:51 发布
本文介绍了一个使用C++实现的字符串处理算法,该算法通过遍历输入的字符串来计算特定字符组合的数量。具体而言,它计算了字符串中'P'和'A'字符之间的'T'字符数量,并将这些数量相乘得到最终答案。

1594

被折叠的 条评论
为什么被折叠?



