A30301. 有几个PAT
填空题
较难
知识点
题目描述
有几个PAT
题目描述
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。
现给定字符串,问一共可以形成多少个 PAT?
时间限制:1000 内存限制:262144
输入
输入只有一行,包含一个字符串,长度不超过105,只包含 P、A、T 三种字母。
输出
在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。
样例输入
APPAPT
样例输出
2
参考答案
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
int len = s.length();
int countp = 0, countpa = 0, countpat = 0;
for (auto it : s)
{
if(it == 'P')
{
countp++;
}
else if(it == 'A')
{
countpa += countp;
}
else if(it == 'T')
{
countpat += countpa;
countpat %= 1000000007;
}
}
cout << countpat<< endl;
return 0;
}
上一题
下一题