1040. 有几个PAT
来源:互联网 发布:淘宝领到的红包在哪里 编辑:程序博客网 时间:2024/04/27 20:54
一、题目
字符串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、pa、pat数量,最后输出pat。
关键点:
- 在pat中需每次进行除余处理。不然可能数太大,造成意料之外的错误,导致测试点不通过。
源代码(C++):
#include <iostream>using namespace std;int main(){ string a; cin >> a; int p = 0, pa = 0, pat = 0; for (int i = 0; i < a.length(); i++) { if (a[i] == 'P') { p++; } else if (a[i] == 'A') { pa += p; } else if (a[i] == 'T') { pat += pa; pat = pat % 1000000007; } } cout << pat;}
阅读全文
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)
- 动态添加RudioButton,刷新Fragment上的数据
- php之Memcache的使用
- javascript iframe跳转问题
- memcpy实现
- 安卓,技术 目录
- 1040. 有几个PAT
- 在Ubuntu下配置Python开发环境
- malloc、calloc、realloc的区别
- storm/jstorm 相关命令
- JDBC简单入门使用
- Git版本控制学习(一)
- C++容器适配器:栈类、队列类和优先级队列类
- 安卓手机连接蓝牙打印机实现打印功能
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(三)——技术白皮书(technical whitepaper)