标签:
字符串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 in; cin >> in; long cnt = 0; int pcnt = 0; int pacnt = 0; for (auto it = in.cbegin();it!=in.cend();it++) { if (*it == ‘P‘) pcnt++; else if (*it == ‘A‘) pacnt = (pcnt + pacnt) % 1000000007; else cnt = (cnt + pacnt) % 1000000007; } cout << cnt; return 0; }
标签:
原文地址:http://www.cnblogs.com/GilbertW/p/5424623.html