PAT算法笔记(八)————有几个PAT*
来源:互联网 发布:干支纪年法简便算法 编辑:程序博客网 时间:2024/05/22 04:07
题目描述
字符串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
代码:
#include"iostream"#include "string"using namespace std;int main(){string s;cin >> s;int numT = 0, numAT = 0, numPAT = 0;for (int i = s.length(); i > 0; i--){if (s[i] == 'T')++numT;else if (s[i] == 'A')numAT = (numAT + numT) % 1000000007;else//P{numPAT = (numPAT + numAT) % 1000000007;}}cout << numPAT;}
思路和陷阱:
三层循环肯定是会超时的,所以从后向前寻找T的个数,而不寻找P后面AT的个数,这样T的个数确定后,向前遇到‘A’的话,AT的个数就会确定下来,如此,PAT就会得知,时间复杂度O(n)
0 0
- PAT算法笔记(八)————有几个PAT*
- PAT——1040. 有几个PAT
- PAT乙级—1040. 有几个PAT(25)-native
- PATBasic——1040. 有几个PAT(25)
- PAT-B1040. 有几个PAT
- PAT 1040 有几个PAT
- PAT 1040. 有几个PAT
- PAT 1040.有几个PAT
- PAT 1040有几个PAT
- PAT B1040. 有几个PAT
- pat 1040. 有几个PAT
- PAT算法笔记(二)————数字分类
- PAT算法笔记(三)————数素数
- PAT算法笔记(五)————旧键盘*
- PAT算法笔记(十)————人口普查
- PAT算法笔记(十二)————打印沙漏
- PAT算法笔记(十七)————月饼
- 1040 有几个PAT
- 要啥自行车,共享单车都来了
- iOS--音频播放、录音、视频播放、拍照、视频录制
- 不错的IT学习网站跟论坛
- Spark SQL 常用操作
- 腾讯2017暑期实习生编程题-有趣的数字
- PAT算法笔记(八)————有几个PAT*
- Windows 安装 Python2.7.9全解,包含错误:2503
- 凹凸多边形的拆分
- 修 改自己的电 脑动 态I.P
- sscanf函数
- git常用命令
- leetcode_3_Longest_Substring_Without_Repeating_Characters
- 网站可靠性工程 SRE
- tensorflow实现CNN