1040 有几个PAT
来源:互联网 发布:红帽linux界面 编辑:程序博客网 时间:2024/06/11 09:40
题目信息:
字符串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
示例代码1:
这种是检测输入的字符串进行遍历,比较费时,提交超时。
#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <cctype>using namespace std;char str[100000];void solve(){ int ct=0; for(int i=0;str[i];i++) { if(str[i]=='P') { for(int j=i;str[j];j++) { if(str[j]=='A') { for(int k=j;str[k];k++) { if(str[k]=='T') {ct++;} } continue; } } continue; } } ct=ct%1000000007; cout<<ct<<endl;}int main(){ cin>>str; solve(); system("pause"); return 0;}示例代码二:
这种方法是输入一个字符判断一下,是PAT中的哪一个,要检测PAT的个数,我们需要检测PA的个数,检测PA个数,需要知道P和A的个数。
#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <cctype>using namespace std;void solve(){ char str; int nP=0,nPA=0,nPAT=0; while((str=getchar())!='\n') { if(str=='P') { nP++; } else if(str=='A') { if(nP) nPA+=nP; } else if(str=='T') { if(nPA) nPAT=(nPAT+nPA)%1000000007; } } cout<<nPAT<<endl;}int main(){ solve(); system("pause"); return 0;}
0 0
- PAT 1040 有几个PAT
- PAT 1040有几个PAT
- 1040 有几个PAT
- 1040、有几个PAT
- 1040 有几个PAT
- 1040 有几个PAT
- 1040 有几个PAT
- 1040_有几个PAT
- PAT 1040 有几个PAT(dp)
- PAT 1040 有几个PAT(运行超时)
- 有几个PAT(PAT-1040)
- PAT乙级1040 有几个PAT
- PAT-B1040. 有几个PAT
- PAT 1040. 有几个PAT
- PAT 1040.有几个PAT
- PAT B1040. 有几个PAT
- pat 1040. 有几个PAT
- PAT_乙级 1040 有几个PAT
- MXNet设计和实现简介
- 为什么写的滚动条监听事件无效
- 【Zookeeper学习】(三):Curator与Fluent编程风格下(对建造者模式的理解)
- 图像通用特征的提取
- 10 javascript 函数的高级用法
- 1040 有几个PAT
- 利用免费weather service编写java天气预报客户端
- CSU 1806 (simpson积分 最短路)
- 关键词抽取(keywords extraction)的相关研究
- 对深拷贝和浅拷贝的再次理解
- [JAVA]十四种Java开发工具点评
- qt中 plaintextedit高亮问题
- 购物车全选+单选+反选简单逻辑实现
- eclipse下部署tomcat项目 报错ClassNotFund:org.springframework.web.context.ContextLoaderListener