PAT1093

#include<iostream>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;


int main()
{


char c[100010];
int p[100010],t[100010];
cin>>c;
int len=strlen(c);
for (int i=0;i<len;i++)
{
if (c[i]=='P')
{ if (i==0){p[i]=1;}
  else{p[i]=p[i-1]+1;}
}
else
{
  if (i==0){p[i]=0;}
  else{p[i]=p[i-1];}
}
}
for(int i=len-1;i>0;i--)
{
if (c[i]=='T')
{ if (i==(len-1)){t[i]=1;}
  else{t[i]=t[i+1]+1;}
}
else
{
  if (i==(len-1)){t[i]=0;}
  else{t[i]=t[i+1];}
}
}
int ans=0;
for(int i=0;i<len;i++)
{
if(c[i]=='A')
{
ans+=p[i]*t[i];
            ans=ans%1000000007;
}
}
cout<<ans;
system("pause");
return 0;

}

注意点

1.注意取模

2.直接模拟会超时

猜你喜欢

转载自blog.csdn.net/qq_32631151/article/details/79304197