1040. 有几个PAT
来源:互联网 发布:网络用语古是什么意思 编辑:程序博客网 时间:2024/06/11 17:01
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。
现给定字符串,问一共可以形成多少个PAT?
输入格式:
输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。
输出格式:
在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的结果。
输入样例:APPAPT输出样例:
2
算法:
- 算法开始。
- 读入一个字符,如果字符是换行符号则跳到第七步。
- 如果字符是P,countP加一。
- 如果字符是A,countPA等于countPA加上countP。
- 如果字符是T,countPAT等于countPAT加上countPA,countPAT等于countPAT除以1000000007的余数。
- 返回第二步。
- 输出countPAT。
- 算法结束。
该算法时间复杂度只有O(n),空间复杂度更只有O(1)。
#include <stdio.h>#define DIV 1000000007int main(void) {char c;int countP = 0, countPA = 0, countPAT = 0;while ((c = getchar())!= '\n') {if ('P' == c) {countP++;}else if ('A' == c) {countPA += countP;}else if ('T' == c) {countPAT += countPA;countPAT %= DIV;}}printf("%d", countPAT);return 0;}
1 0
- PAT 1040. 有几个PAT
- PAT 1040.有几个PAT
- pat 1040. 有几个PAT
- 1040. 有几个PAT
- 1040. 有几个PAT
- 1040. 有几个PAT
- 1040. 有几个PAT
- 1040. 有几个PAT
- 1040. 有几个PAT
- PAT.1040.有几个PATA
- 【PAT】1040. 有几个PAT(25)
- PAT (Basic Level)1040. 有几个PAT
- PAT-B 1040. 有几个PAT
- PAT-B 1040. 有几个PAT
- PAT-1040. 有几个PAT(25)
- [PAT-乙级]1040.有几个PAT
- 1040. 有几个PAT(25) PAT
- pat:1040. 有几个PAT(25)
- Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake(离散化+线段树)
- C++ Primer阅读心得(第十六章)
- HDOJ 5630Rikka with Chess(游戏)
- [LeetCode] Same Tree
- Struts2 路径问题
- 1040. 有几个PAT
- PPT突然不能翻页了
- 【iOS】数据持久化
- CodeForces 630 F. Selection of Personnel(组合数学)
- [从头学数学] 第100节 圆柱与圆锥
- OC中的点语法,成员变量,@property和@synthesize:id类型,构造函数
- 6.3 cmath--数学函数
- HDOJ 5631Rikka with Graph(图论)
- 机房重构—组合查询&模板方法