【PAT】B1003 我要通过!
我觉得这是PAT中最坑的一道题,表述令人很不适应
分析过程:
条件1.只有P,A,T三种字符
条件2.xPATx正确,x可以是空串,或者由A组成的字符串
条件3.如果aPbTc是正确的,aPbATca也是正确的,a,b,c与上一条件x相同
1,2为基本条件,根据1,2推3
根据条件1,2=》》》xPATx正确
条件3中:
首先有xPATx正确
aPbTc中a=x,b=1,c=x;
则有aPbATca中a=x,b+1=2,c+a=2x;
则有a=x,b+1=3,c+a=3x;
。。。。
以此类推可得对于aPbTc要满足ab=c,而且b》=1
<-------------------------------------------->
解决了逻辑问题,要处理代码了。
将一行数据存入字符串,遍历,每个字符map映射加一,并保存PT的位置
只要map中PT只有一个,A至少一个
另外要使ab = c,只要p * (t - p - 1) == strlen(arr) - t - 1,不用考虑T是否在P前边,如果那样计算出来的b为负
#include<stdio.h>
#include<string.h>
#include<map>
using namespace std;
int main() {
int N; scanf("%d", &N);
for (int i = 0; i<N; i++) {
char arr[101];
scanf("%s", arr);
int p, t;
map<char, int> mp;
for (int j = 0; j<strlen(arr); j++) {
mp[arr[j]]++;
if (arr[j] == 'P') p = j;
if (arr[j] == 'T') t = j;
}
if (mp['P'] == 1 && mp['T'] == 1 && mp['A'] != 0 && mp.size() == 3 && p*(t - p - 1) == strlen(arr) - t - 1) {
printf("YES\n");
}
else {
printf("NO\n");
}
}
return 0;
}
【PAT】B1003 我要通过!的更多相关文章
- PAT B1003 我要通过!
“答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1 ...
- 《转载》PAT 习题
博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...
- PAT Judge
原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...
- PAT/字符串处理习题集(二)
B1024. 科学计数法 (20) Description: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+ ...
- PAT 1041. 考试座位号(15)
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...
- PAT 1040. 有几个PAT(25)
字符串APPAPT中包含了两个单词"PAT",其中第一个PAT是第2位(P),第4位(A),第6位(T):第二个PAT是第3位(P),第4位(A),第6位(T). 现给定字符串,问 ...
- PAT 1032. 挖掘机技术哪家强(20)
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每行给出一位 ...
- pat甲级题解(更新到1013)
1001. A+B Format (20) 注意负数,没别的了. 用scanf来补 前导0 和 前导的空格 很方便. #include <iostream> #include <cs ...
- PAT (Basic Level) Practise 1040 有几个PAT(DP)
1040. 有几个PAT(25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 字符串APPAPT中包含了两个单 ...
随机推荐
- C#开发必会
1.字符串的各种属性和方法: 2.数组的各种熟悉和方法: 3.public.private.protect.internal.protect internal 4.构造函数 5.属性 6.ADO.NE ...
- filter listener interceptor的区别
转自: http://www.cnblogs.com/shangxiaofei/p/5328377.html https://www.cnblogs.com/jinb/p/6915351.html 一 ...
- 通过 Ansible 创建 Jenkins Server
创建 CI 流程的第一件事应该是安装 CI 工具,本文以最常见的 Jenkins 为例,介绍如何使用 Ansible 自动安装 Jenkins Server.说明:本文的演示环境为 ubuntu 16 ...
- 深入学习Python解析并解密PDF文件内容的方法
前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...
- C# 微信公众号开发--准备工作
前言 最初打算熟悉下微信开发打算用node.js开发,结果底气不足先用C#开发,先踩了踩坑. 准备工作 微信公众平台开发者文档. 这个先多看几遍. 测试公众号,申请开通后会看到微信号,appID,ap ...
- [转]JS实现千分位
本文转自:https://www.cnblogs.com/lvmylife/p/8287247.html 方法一:正则实现 function format (num) { var reg=/\d{1, ...
- Extjs 项目中常用的小技巧,也许你用得着(1)
我在项目中遇到的一些知识点: 1.在GridPanel中显示图片,效果 对应的代码实现 { text: '是否启用', width: 80, // xtype: 'checkcolumn', data ...
- Modbus通信协议 【 初识 Modbus】
Modbus协议 Modbus 协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间.控制器经由网络(例如以太网)和其它设备之间可以通信.它已经成为一通用工业标准.有了它,不同厂 ...
- [PHP] 数据结构-循环链表的PHP实现
1.将单链表中终端结点的指针端由空指针改为指向头结点,单循环链表,循环链表和单链表的主要差异就在于循环的判断条件上原来是判断p->next是否为空,现在则是p->next不等于头结点,则循 ...
- DataGridView 多列排序功能
System.Data.DataTable dt = new System.Data.DataTable(); private void FillDataGridView() { dt.Columns ...