AcWing 1583. PAT 计数
原题链接
简单
作者:
eveer
,
2021-08-26 19:23:30
,
所有人可见
,
阅读 186
#include<bits/stdc++.h>
using namespace std;
const p=1000000007;
string word;//用于记录单词
int main()
{
cin>>word;
int cnt_t=0,cnt_p=0,cnt=0;//cnt_t用于记录字母A右边的t数量,cnt_P用于记录字母A左边P的数量
for(int i=0;i<word.size();i++)
{
if(word[i]=='T')//首先记录单词中所有T的数量
cnt_t++;
}
for(int i=0;i<word.size();i++)
{
if(word[i]=='P')cnt_p++;//如果第i个字母为P,则cnt_p自增1,表示A左边的p的数量增加
if(word[i]=='T')cnt_t--;//如果第i个字母为T,由于T在A的左边,所以cnt_t减去1
if(word[i]=='A')cnt=(cnt+cnt_p*cnt_t%p)%p;
}
printf("%d",cnt);
return 0;
}