PAT (Basic Level) Practice 1040 有几个PAT
程序员文章站
2022-06-19 10:45:19
个人练习 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 现给定字符串,问一共可以形成多少个 PAT? 输入格式: 输入只有一行,包含一个字符串,长度 ......
个人练习
字符串 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
#include<iostream> #include<string.h> using namespace std; int main(){ string num; long t=0,at=0,pat=0; cin>>num; long len=num.length(); for(int i=len-1;i>=0;i--) { if(num[i]=='t') { t++; }else if(num[i]=='a') //每次发现‘a’则倍加 { at+=t; }else if(num[i]=='p') //每次发现‘p’则倍加 { pat+=at; } } cout<<pat%1000000007; return 0; }
推荐阅读
-
PAT (Basic Level) Practice (中文)1001
-
PAT (Basic Level) Practice (中文)1009 说反话 (20 分)
-
PAT (Basic Level) Practice 1009 说反话 (20 分)
-
PAT (Basic Level) Practice (中文)1009 说反话 (20)
-
PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)(C实现)
-
1066 图像过滤 (15 分)—PAT (Basic Level) Practice (中文)
-
PAT (Basic Level) Practice (中文) 1066 图像过滤 (15分)
-
PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)
-
PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)
-
PAT (Basic Level) Practice (中文)1066 图像过滤 C语言版 (15分)