有多少个PAT

来源:互联网 发布:查询商品价格的软件 编辑:程序博客网 时间:2024/04/27 15:00
#include<iostream>
#include<string>
using namespace std;
const int maxn = 100100;
int p[maxn],t[maxn];//p[i]表示第i位前(包括i)有多少P,t[i]表示i位之后有多少T
int main(){
string s;
cin>>s;
long long  ans=0;
int len=s.length();
for(int i=0;i<len;i++){
if(s[i] == 'P'){
if(i==0) 
p[i]++;
else
p[i] = p[i-1]+1;
}else{
if(i>0)
p[i] = p[i-1];
else
p[i]=0;
}




}


for(int i=len-1;i>=0;i--){
if(s[i] == 'T'){
if(i==len-1)
t[i]++;
else
t[i]=t[i+1]+1;
}else{
if(i==len-1)
t[i]=0;
else
t[i] = t[i+1];
}
}
for(int i=0;i<len;i++){
if(s[i] == 'A'){
ans+=p[i]*t[i];
}
}




cout<<ans%1000000007;
system("pause");
return 0;
}
0 0
原创粉丝点击