“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”

得到“答案正确”的条件是:

  1. 字符串中必须仅有 PAT这三种字符,不可以包含其它字符;

  2. 任意形如 xPATx的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A组成的字符串;

  3. 如果aPbTc是正确的,那么 aPbATca 也是正确的,其中 abc均或者是空字符串,或者是仅由字母A 组成的字符串。

现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。

输入格式:

每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。

输出格式:

每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出 YES,否则输出 NO

输入样例:

8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA

输出样例:

YES
YES
YES
YES
NO
NO
NO
NO

解题思路:

  • 通过读取题干信息,字符串中必须仅有 P、 A、 T、及空白字符,且有且仅有一个P,T, 且PT之前;

  • 还有一个隐藏的规律,以P和T为边界可以分为三部分: ********** P*********** T********,其中 全部由空白符和A组成;

  • 设:A-P之间*个数:a, P-T之间*个数:b ,T-A之间*个数:c,得:a*b=c ;

  • 将全部*****替换为空时,那么用例 == 'PT'时,有可能会YES, 否则直接判定NO;

  • 通过字符串的截取,求出上述变量a,b,c,判定上述条件是否成立,返回结果;

JavaScript(node 12.18.4)

var buf = "";
process.stdin.on("readable", function () {
var chunk = process.stdin.read();
if (chunk) buf += chunk.toString();
}); process.stdin.on("end", function () {
const a = compute(buf);
console.log(a);
});
function compute(num) {
var tmp = num.split('\n');
num = tmp.slice(1,tmp[0]-0 + 1);
var result = '';
for(var i=0;i<num.length;i++){
var tmp1 = num[i].replace(/A|\s/g,'');
var tmp2 = num[i];
if(num[i].length>=3 && tmp1.length == 2 && tmp1[0]=='P' && tmp1[1] == 'T'){
var $1 = tmp2.substring(0,tmp2.indexOf('P')).length;
var $2 = tmp2.substring(tmp2.indexOf('P')+1,tmp2.indexOf('T')).length;
var $3 = tmp2.substring(tmp2.indexOf('T')+1).length;
if($1*$2 == $3){
result+='YES';
}else{
result+='NO';
}
}else{
result+='NO';
}
result+= i == num.length-1 ? '' : '\n';
}
return result;
}

PAT-1003 我要通过! (20分) JavaScript(node)的更多相关文章

  1. PAT乙级:1088 三人行 (20分)

    PAT乙级:1088 三人行 (20分) 题干 子曰:"三人行,必有我师焉.择其善者而从之,其不善者而改之." 本题给定甲.乙.丙三个人的能力值关系为:甲的能力值确定是 2 位正整 ...

  2. PAT乙级:1064 朋友数 (20分)

    PAT乙级:1064 朋友数 (20分) 题干 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 ...

  3. PAT 甲级 1035 Password (20 分)

    1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...

  4. [PAT] 1140 Look-and-say Sequence(20 分)

    1140 Look-and-say Sequence(20 分)Look-and-say sequence is a sequence of integers as the following: D, ...

  5. pat 1132 Cut Integer(20 分)

    1132 Cut Integer(20 分) Cutting an integer means to cut a K digits lone integer Z into two integers o ...

  6. pat 1100 Mars Numbers(20 分)

    1100 Mars Numbers(20 分) People on Mars count their numbers with base 13: Zero on Earth is called &qu ...

  7. pat 1108 Finding Average(20 分)

    1108 Finding Average(20 分) The basic task is simple: given N real numbers, you are supposed to calcu ...

  8. pat 1084 Broken Keyboard(20 分)

    1084 Broken Keyboard(20 分) On a broken keyboard, some of the keys are worn out. So when you type som ...

  9. pat 1046 Shortest Distance(20 分) (线段树)

    1046 Shortest Distance(20 分) The task is really simple: given N exits on a highway which forms a sim ...

  10. pat 1042 Shuffling Machine(20 分)

    1042 Shuffling Machine(20 分) Shuffling is a procedure used to randomize a deck of playing cards. Bec ...

随机推荐

  1. 智能调度_AIRIOT智能车队管理解决方案

    客运.货运.汽车租赁.出租运营等行业对车辆管理.车队管理以及司乘人员的管理方式,逐渐向数字化和智能化转型.传统的依赖人工调度.记录和跟踪的管理模式已经难以满足业务发展需要,存在如下痛点: 实时监控与定 ...

  2. zabbix笔记_003 配置微信告警

    配置邮件告警 安装python-requests,使用微信发送告警 发送告警报错: yum install -y python-requests 测试告警: cat weixin.py #------ ...

  3. 记一次 .NET某工控视觉自动化系统 卡死分析

    一:背景 1. 讲故事 今天分享的dump是训练营里一位学员的,从一个啥也不会到现在分析的有模有样,真的是看他成长起来的,调试技术学会了就是真真实实自己的,话不多说,上windbg说话. 二:WinD ...

  4. Centos7安装Nginx教程,一步安装http和https

    nginx是一款轻量级web服务器,主要有负载均衡和反向代理的特性. 安装准备 nginx一些模块需要依赖lib库,所以先安装lib库,执行以下命令: [root@localhost local]# ...

  5. 让Easysearch运行在LoongArch(3C5000L)上

    简介 在上一次,我介绍了在国产操作系统 Kylin V10 (Lance)-aarch64 上安装单机版 Easysearch/Console/Agent/Gateway/Loadgen,小伙伴们可查 ...

  6. VIVO IQOO 5G 开关

    VIVO IQOO 5G 开关 在拨号盘输入*#*#2288#*#*,然后点击网络模式选择. -

  7. 增补博客 第八篇 python 中国大学排名数据分析与可视化

    [题目描述]以软科中国最好大学排名为分析对象,基于requests库和bs4库编写爬虫程序,对2015年至2019年间的中国大学排名数据进行爬取:(1)按照排名先后顺序输出不同年份的前10位大学信息, ...

  8. PI规划会,研发团队价值聚焦的一剂良方

    随着数字化建设如火如荼地推进,中大型企业的数字化建设团队规模也越来越大,团队规模的扩大一方面带来了更多产能与可能性,另一方面,不同的角色在不同的业务场景也带来了一些现实问题,例如: 作为CIO 或产品 ...

  9. ClickHouse的物化视图及MySQL表引擎

    MySQL表引擎可以与MySQL数据库中的数据表简历映射,并通过SQL向其发起远程查询. MySQL表引擎可以与物化视图结合,来同步更新MySQL数据库中的数据. 语法: CREATE TABLE [ ...

  10. 基于LoRA的RLHF

    参考Github 开源模型LLM-Tuning 一.简介 (1)RLHF (基于人类反馈的强化学习) 分为三步: SFT (Supervised Fine-Tuning): 有监督的微调,使用正常的 ...