PAT-1003 我要通过! (20分) JavaScript(node)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。
得到“答案正确”的条件是:
字符串中必须仅有
P、A、T这三种字符,不可以包含其它字符;任意形如
xPATx的字符串都可以获得“答案正确”,其中x或者是空字符串,或者是仅由字母A组成的字符串;如果
aPbTc是正确的,那么aPbATca也是正确的,其中a、b、c均或者是空字符串,或者是仅由字母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, 且P在T之前;还有一个隐藏的规律,以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)的更多相关文章
- PAT乙级:1088 三人行 (20分)
PAT乙级:1088 三人行 (20分) 题干 子曰:"三人行,必有我师焉.择其善者而从之,其不善者而改之." 本题给定甲.乙.丙三个人的能力值关系为:甲的能力值确定是 2 位正整 ...
- PAT乙级:1064 朋友数 (20分)
PAT乙级:1064 朋友数 (20分) 题干 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 ...
- PAT 甲级 1035 Password (20 分)
1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...
- [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, ...
- 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 ...
- pat 1100 Mars Numbers(20 分)
1100 Mars Numbers(20 分) People on Mars count their numbers with base 13: Zero on Earth is called &qu ...
- pat 1108 Finding Average(20 分)
1108 Finding Average(20 分) The basic task is simple: given N real numbers, you are supposed to calcu ...
- 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 ...
- pat 1046 Shortest Distance(20 分) (线段树)
1046 Shortest Distance(20 分) The task is really simple: given N exits on a highway which forms a sim ...
- pat 1042 Shuffling Machine(20 分)
1042 Shuffling Machine(20 分) Shuffling is a procedure used to randomize a deck of playing cards. Bec ...
随机推荐
- 【题解】A18536.星光交错的律动
题目跳转 思路:这道题可能跟博弈论有一点关系,没有学习过博弈论做起来应该问题也不大.思考一个问题,先手必胜的前提是什么? 有关更多的内容可以前往:浅谈有向无环图 先手必胜的前提是,在任何一种局面下,先 ...
- C#异步调用Process(),后台静默调用cmd控制台
C#调用cmd控制台操作,网上有太多的教程了,但是大多数都是执行完一条指令,退出Process,下次执行指令,再次new Process(),(只为了接收到cmd指令的回复,不然会进程阻塞,程序至此不 ...
- Keil_MDK中无法打开map文件的解决办法
如果在MDK中打开map文件 我们在STM32的开发过程中,经常会查看.map文件 .map文件是MDK在编译过程中生成的一个包含镜像文件信息的重要文件,在程序编译后自动生成,比方这里我的工程下自动将 ...
- 构建X264 .a 静态库 For iOS
一.构建X264准备 1.下载X264源代码到本地,并解压.修改文件夹名称为x264 ftp://ftp.videolan.org/pub/x264/snapshots/ 2.下载gas-prepro ...
- 我有点想用JDK17了
大家好呀,我是summo,JDK版本升级的非常快,现在已经到JDK20了.JDK版本虽多,但应用最广泛的还得是JDK8,正所谓"他发任他发,我用Java8". 其实我也不太想升级J ...
- 数据库系列16:MyISAM与InnoDB的索引对比
相关文章 数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩 ...
- Flashcat与出行科技企业一起实践多云可观测
当前架构 某出行科技企业从单个公有云往多云转型,依托于国内领先的公有云提供商,采用多云架构,在可用性.弹性.成本.供应商依赖方面,拥有了显著的优势. 相应的,多云架构也给技术团队带来了一定的复杂度和技 ...
- Selenium模块的使用(一)
简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器, 完全模拟浏览器的操作,比 ...
- HTTP报文结构详解
HTTP/HTTPS简介HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到 ...
- 《软件性能测试分析与调优实践之路》第二版-手稿节选-Mysql数据库性能定位与分析
在做MySQL数据的性能定位前,需要先知道MySQL查询时数据库内部的执行过程.只有弄清SQL的执行过程,才能对执行过程中的每一步的性能做定位分析.如图6-2-1所示. 图6-2-1 从图中可以看到, ...