代码编织梦想

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

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

  1. 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
  2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
  3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。

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

输入格式:

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

输出格式:

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

输入样例:

10
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA
APT
APATTAA

输出样例:

YES
YES
YES
YES
NO
NO
NO
NO
NO
NO

思路

关键在于理解3个条件,条件3是在条件2的基础上叠加的,可以得出:左侧A的数量*中间A的数量=右侧A的数量。
 

AC代码 

#include<stdio.h>
int main(){
    int n,i,j,l;
    int p,t,cp,ct;
    int flag;
    scanf("%d\n",&n);
    char s[101];
    for(i=1;i<=n;i++){//gets一个判断一个
        gets(s);
        l=strlen(s);
        cp=0;//cp为P的数量
        ct=0;//ct为T的数量
        flag=0;//flag为条件1的判断
        for(j=0;j<l;j++){
            if(s[j]!='P'&&s[j]!='A'&&s[j]!='T'){//条件1
                flag=1;
                break;
            }
            if(s[j]=='P'){
                p=j;//字母P的指针
                cp++;//P的数量
            }
            if(s[j]=='T'){
                t=j;//字母T的指针
                ct++;//T的数量
            }
        }
        if(flag==0&&cp==1&&ct==1&&p*(t-p-1)==(l-t-1)&&t-1>p){
            printf("YES\n");
        }
        else{
            printf("NO\n");
        }
    }
    return 0;
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dragon_dd/article/details/129630511

pat basic level practice 1003.我要通过(c++)_天堂儿歌大赛季军的博客-爱代码爱编程

分析:这道题难度不在于如何求解,而在于如何确切的理解题意,一开始我直接强解导致有两个测试点不过,之后经过仔细研究分析,终于解决了这两个点。 题意:1.输入一个小于十的数;            2.每个字符串不超过100个字符且无空格;            3.每行一个输出。 算法:1.出现PAT之外的字符均输出NO;           2.Locat

pat (basic level) practice 1003我要通过!_神奇侦探工作室的博客-爱代码爱编程

题目意图理解: 条件一最最基本,暂且不管。条件二,xPATx 就是正确的形式;在此基础上,如果 aPbTc 是正确的,那么 aPbATca 也是正确的。如果二者放在一起考虑,就是中间每增加一个A,后面就增加一个a,

pat (basic level) practice 1003 我要通过!(两种解法)_a656418zz的博客-爱代码爱编程

乙级1003 这题和HOJ3788一样,故把那边的sample也拿过来: 题意好理解,就对条件3解释一下: 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅

pat (basic level) practice (中文)--1003 我要通过!-爱代码爱编程

“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅

pat(basic level)practice 1003 我要通过! 题解-爱代码爱编程

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

pat (basic level) practice (中文)--1003 我要通过! (java)_hmm7的博客-爱代码爱编程

目录 1 题目 2 分析 3 代码--java  返回    PAT (Basic Level) Practice (中文)练习目录导航 1 题目 1003 我要通过! (20 分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输

PAT (Basic Level) Practice——1003 我要通过!-爱代码爱编程

PAT (Basic Level) Practice——1003 我要通过! 题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805323154440192 题目描述 “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只

PTA (Basic Level) Practice 1003 我要通过! (20 分)-爱代码爱编程

 此题目的核心部分就是要读懂题意,找出规律,到底是怎样的PAT可以‘YES’? 由 AAPATAA AAPAATAAAA 都是‘YES’以及根据条件,我们判断出,当P前面的A*P和T中间的A = T后面的A时这个答案才会正确  原题如下: “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字

PAT (Basic Level) Practice 1003 我要通过!(C语言)-爱代码爱编程

这题挺有意思,题目不太好理解,要仔细思考思考,P和T之间至少有一个A,而每多一个A,T后面A的数量就得加上P前A的数量,在初始时P和T左右两边A的数量又必须相等,所以可以得出T右侧A的数量=P左侧A的数量*P与T之间A的数量。 #include<stdio.h> int main(){ int n[3]={0}; int chec

PAT (Basic Level) Practice (中文)1003 我要通过! (20 分)-爱代码爱编程

“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x或者是空字符串,或者是仅由

PAT (Basic Level) Practice 1003 我要通过!-爱代码爱编程

#include<stdio.h> #include <string.h> //找规律知,YES的标准是左边的A的数量*中间的A的数量==右边的A的数量,同时要求PT中间要有A int main(){ int a,i=0,len,j,l,m,r,p=0,t=0,key,np,nt;//l:left,m:middle,r:right

PAT (Basic Level) Practice 1003:我要通过(python)-爱代码爱编程

PAT (Basic Level) Practice 1003:我要通过(python) 题目描述 输入样例 10 PAT PAAT AAPATAA AAPAATAAAA xPATx PT Whatever APAAATAA APT APATTAA 输出样例 YES YES YES YES NO NO NO NO NO NO 题中还要求

PAT (Basic Level) Practice (中文)1003 我要通过——解析-爱代码爱编程

1003 我要通过! (20 分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确

PAT (Basic Level) Practice 1003 我要通过 (20 分)-爱代码爱编程

一.题目描述 1003 我要通过! (20 分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 1.字符串中必须仅有P、 A、 T这三种字符,不可以包含其它字符; 2.任意形如 xPATx 的字符串都

pat (basic level) practice 1003 我要通过 python解法-爱代码爱编程

目录 一、题目二、输入输出三、样例四、题目分析五、Python代码 一、题目 让我们定义d n为:d n=p n+1−p n ,其中p i ​ 是第i个素数。显然有d 1=1,且对于n>

寒假所学算法复习3月12总结-爱代码爱编程

3月12复习了深度优先搜索(dfs)和广度优先搜索(bfs) 刷了洛谷上的一道题:[POI2007]GRZ-Ridges and Valleys - 洛谷 原本想用dfs写,但写到一半,发现思路不对,于是又用bfs去写,思路如下: 地图上有三种区域,山峰,山谷,山坡,当一个相同数的区域的周围全是比这个数要小的数这个区域就是山峰,否则就是山谷,但

用javascript分类刷leetcode6.深度优先&广度优先(图文视频讲解)_javascript leetcode 6题-爱代码爱编程

深度优先&广度优先 动画过大,点击查看 bfs:适用于层序遍历或者寻找最短路径的问。 //bfs伪代码模版 function bfs(graph, start, end) { queue =

一本通 2.9.2 动态规划中背包问题_一本通 背包问题-爱代码爱编程

1260:【例9.4】拦截导弹(Noip1999) 【题目描述】 一个旅行者有一个最多能装 M 公斤的背包,现在有 n�件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。 【题目分析】  【代码实现】 #include <bits/stdc++.h> usi