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

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

  1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;
  2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
  3. 如果 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

C++AC代码(更新于2017年4月9日)
题目的意思是:P前的A乘PT之间的A等于T之后的A(结合第三点),其中,P和T必须为1,A至少有一个;
第二点注释:
xPATx正确,这是因为,
CountA(x)∗CountA(A)=CountA(x)∗1=CountA(x)
第三点注释:
aPbTc正确,则aPbATca正确,这是因为
有等式,CountA(a)∗CountA(b)=CountA(c),
则必有
CountA(a)∗CountA(b+A)=CountA(a)∗CountA(b)+CountA(a)=CountA(c)+CountA(a)=CountA(a+c)

#include <iostream>
#include <string>
using namespace std;
bool Judge(string &s)//判断YES或者NO
{int P=0,A=0,T=0;//用于记录P、A、T个数int Ppos=-1,Tpos=-1;//记录P和A的位置for(unsigned int i=0;i<s.length();++i){switch(s[i]){case 'A':++A;break;case 'P':++P,Ppos=i;break;case 'T':++T,Tpos=i;break;default:return false;}}//A必须大于等于1,PT必须等于1,P前的A乘PT之间的A等于T之后的Aif(A>=1&&P==1&&T==1&&Ppos*(Tpos-Ppos-1)==(int)s.length()-Tpos-1)return true;return false;
}
int main()
{int n;cin>>n;//case_numberwhile(n--){string s;cin>>s;if(Judge(s))cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}

C语言AC代码(pre)

#include<stdio.h>
#include<string.h>
int main(){char s[105];int n,i,k;scanf("%d",&n);for(i=0;i<n;i++){int tag=0,Dn_P=0,Dn_T=0,Dn_A=0,Nt_P=-1,Nt_T=-1;scanf("%s",s);for(k=0;k<strlen(s);k++){if(s[k]=='P'){Nt_P=k;Dn_P++;}else if(s[k]=='T'){Nt_T=k;Dn_T++;}else if(s[k]=='A'){Dn_A++;continue;}else {printf("NO\n");tag=1;break;}}if(tag==0){if(Dn_P==1&&Dn_T==1&&Dn_A>=1&&Nt_P*(Nt_T-Nt_P-1)==(strlen(s)-1-Nt_T))printf("YES\n");else printf("NO\n");}}
}

转载于:https://www.cnblogs.com/xLester/p/7570522.html

1003. 我要通过!(20)相关推荐

  1. 牛客网 PAT 算法历年真题 1003: 数素数 (20)

    1003:数素数 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 令Pi表示第i个素数.现任给两个正整 ...

  2. 1003 我要通过 (20 分)

    题目 题目链接 题解 实现题. 理解题目表达的意思: 字符串中必须仅有 P. A. T 这三种字符,不可以包含其它字符: 可以在 PAT 左右两侧加任意个相同数量的 A,比如 PAT.APATA.AA ...

  3. 1003 我要通过(20 分)

    "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&q ...

  4. DBUtils 笔记

    一.DBUtils介绍  apache 什么是dbutils,它的作用 DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作.可 ...

  5. L1-056 猜数字 C语言,PAT L1-032 Left-pad

    根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的Re ...

  6. extjs 日期不显示

    Ext.onReady(function(){//初始化全局 QuickTips 实例 使得tip提示可用Ext.QuickTips.init();//别名var xg=Ext.grid;//创建一个 ...

  7. 数据结构与算法课程作业--奇数个数的数的查找方法-异或

    1003: FFF团的情侣活动 Time Limit: 1 Sec  Memory Limit: 2 MB Submit: 256  Solved: 48 [Submit][Status][Web B ...

  8. this.fields.get(c) is undefined

    今天在做项目的时候碰到这个问题,和大家一起分享: 源代码:大家一定需要注意我的Store中的sortInfo: <script type="text/javascript"& ...

  9. CentOS7部署NFS服务

    1.NFS简介 NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和 ...

  10. oswatch的安装和使用

    author:skate time:2011/08/06 oswatch的安装和使用 1.下载和安装 oswatch的安装与使用也比较简单,和nmon一样,都是下载后直接解压就可以使用的. oswat ...

最新文章

  1. PCA(2):PCA算法实现的两种方式
  2. php 多图上传编辑器,laravel中使用WangEditor及多图上传
  3. vue路由守卫判断用户是否登录,如果没登陆就跳转到登录
  4. 16秋川大计算机基础作业,川大 16秋 《计算机应用基础》第一次作业答案
  5. 让你的 Node.js 应用跑得更快的 10 个技巧
  6. 远程连接Ubuntu服务器
  7. Linux 命令(36)—— awk 命令
  8. 汇编语言 王爽 第四版 课后检测点 课后实验 包括解释 持续更新~~
  9. Mac上的MySQL可视化工具总结
  10. 交叉熵损失函数权重计算
  11. Jerry Wang的英语学习笔记
  12. C++(数据结构与算法):55---无权图与有权图的描述(邻接矩阵、邻接链表、邻接数组、十字链表、邻接多重表)
  13. rrpp协议如何修改_《技术进阶:理解RRPP协议.ppt
  14. 阻抗匹配基础知识详解
  15. pytorch dataset自定义_PyTorch | 数据加载及预处理教程
  16. DataSource和SessionFactory的区别
  17. C#时间显示格式(12小时制VS24小时制)
  18. Win10 计算机扩展显示器闪黑屏
  19. 开源C++单元测试框架Google Test介绍
  20. 炉石传说JJC英雄简评 JJC combo收集:Ver 1.0

热门文章

  1. 无言的鞭策:日本20年19人获自然科学诺奖
  2. 11款新品,一切为了落地!商汤:普惠AI的时代,来了
  3. 50大产业链全景图(高清完整版)
  4. 13000行代码、19大技术,这位16岁高中生用C++从头到尾构建了一个机器学习库!...
  5. 在内存只有 24KB 的电脑上写操作系统,是怎样的体验?
  6. NBA 投篮数据可视化,4 行代码就能实现!
  7. 以前写的canvas 小游戏 贪吃蛇代码
  8. 高质量程序程序设计指南摘录
  9. Google DeepMind 声称在合成语音领域取得突破
  10. 转 linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值