/*
APPAPT
输出样例:
2
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.length();
int countt=0; //检查到当前 后面还有 COUNTT 个 T
int countp=0; //检查到当前 前面有 countp 个 P
int counta=0;
for(int i=0;i<len;i++)
{
if(s[i]=='T') countt++; //理想情况最多有 T的个数 这么多种符合题目的情况;
}
//做完准备工作 开始检查
for(int i=0;i<len;i++)
{
if(s[i]=='P') countp++;
if(s[i]=='T')countt--;
if(s[i]=='A')counta+=countp*countt;
////////难点 XXX A XX A XXXX A前面的 后面的P T 数量影响 了这个 s[i] 这个A位置形成 的情况
//所以是求和 才满足题意;
}
cout<<counta;
return 0;
}
APPAPT
输出样例:
2
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.length();
int countt=0; //检查到当前 后面还有 COUNTT 个 T
int countp=0; //检查到当前 前面有 countp 个 P
int counta=0;
for(int i=0;i<len;i++)
{
if(s[i]=='T') countt++; //理想情况最多有 T的个数 这么多种符合题目的情况;
}
//做完准备工作 开始检查
for(int i=0;i<len;i++)
{
if(s[i]=='P') countp++;
if(s[i]=='T')countt--;
if(s[i]=='A')counta+=countp*countt;
////////难点 XXX A XX A XXXX A前面的 后面的P T 数量影响 了这个 s[i] 这个A位置形成 的情况
//所以是求和 才满足题意;
}
cout<<counta;
return 0;
}
本文介绍了一种通过遍历输入字符串并使用计数变量来计算特定模式“APPAPT”出现次数的方法。通过逐字符检查,并根据当前字符更新P和T的数量,最终得出所有可能的‘APPAPT’组合。
193

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



