测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题