南京网站建,全屋定制设计指南,外贸服装网站开发,长春网站建设方案字符串 APPAPT 中包含了两个单词 PAT#xff0c;其中第一个 PAT 是第 2 位(P)#xff0c;第 4 位(A)#xff0c;第 6 位(T)#xff1b;第二个 PAT 是第 3 位(P)#xff0c;第 4 位(A)#xff0c;第 6 位(T)。 现给定字符串#xff0c;问一共可以形成多少个 PAT#xff…字符串 APPAPT 中包含了两个单词 PAT其中第一个 PAT 是第 2 位(P)第 4 位(A)第 6 位(T)第二个 PAT 是第 3 位(P)第 4 位(A)第 6 位(T)。 现给定字符串问一共可以形成多少个 PAT 输入格式 输入只有一行包含一个字符串长度不超过1只包含 P、A、T 三种字母。 输出格式 在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大只输出对 1000000007 取余数的结果。 输入样例 APPAPT输出样例 2 思路对于每一个A它前面的P的个数和它后面的T的个数的乘积就是能构成的PAT的个数。然后把对于每一个A的结果相加即可。 1 #includeiostream 2 #includestring3 using namespace std;4 int main() {5 string str;6 cinstr;7 int len str.length(), res 0, p 0, t 0;8 int i;9 for (i 0;ilen; i) {//第一次遍历统计T的总个数
10 if (str[i] T)
11 t;
12 }
13 for (i 0; i len; i) {
14 if (str[i] P) p;
15 if (str[i] T) t--;
16 if (str[i] A) res (res (p * t) % 1000000007) % 1000000007;//如果不这样每一结果
17 } //取余那么可能会溢出
18 cout res;
19 return 0;
20 } 转载于:https://www.cnblogs.com/TBhacker/p/11204415.html