#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<map>
#include<string>
#include<set>
#include<stack>
using namespace std;
int main()
{
char str[100001];
int countp[100001];
int countT[100001];
scanf("%s",str);
int t=strlen(str);
countp[0]=0;
for(int i=0;i<t;i++)
if(i==0&&str[i]=='P')
countp[i]=1;
else if(i!=0)
{
if(str[i]=='P')
countp[i]=countp[i-1]+1;
else
countp[i]=countp[i-1];
}
countT[t-1]=0;
for(int i=t-1;i>=0;i--)
if(i==t-1&&str[i]=='T')
countT[i]=1;
else if(i!=t-1)
{
if(str[i]=='T')
countT[i]=countT[i+1]+1;
else
countT[i]=countT[i+1];
}
int ans=0;
for(int i=0;i<t;i++)
if(i!=0&&str[i]=='A')
{
ans+=countT[i+1]*countp[i-1];
ans%=1000000007;
}
printf("%d\n",ans);
return 0;
}
PAT 1093. Count PAT's (25)
最新推荐文章于 2022-11-09 18:19:14 发布
本文介绍了一个C++程序,用于计算给定字符串中特定字符组合的数量。通过对字符串进行遍历,并利用前后缀计数的方法,实现了高效查找指定字符组合的功能。
497

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



