pat 乙级 1003 我要通过!(C++)

题目

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

得到"答案正确"的条件是:

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

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

分析

题目内容较多,慢慢读下来,以第2个条件为基础,结合第3个条件多写几个字符串,最后有以下3点

  • 字符串有且仅能有P、A、T 这3种字符
  • P和T中间必须有A
  • 设P前面A的数目为a1,P和T中间的为a2,T之后的为a3。三者满足:a3=a1*a2。

AC代码

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
string judge(string s)
{int i,a1=0,a2=0,a3=0,flag=0,len=s.length()+1;int p=0,t=0;string result;char ch[len];strcpy(ch, s.c_str());for(i=0;i<len-1;i++){if(ch[i]=='A'){if(flag==0)a1++;else if(flag==1)a2++;elsea3++;}else if(ch[i]=='P'){flag=1;p++;}else if(ch[i]=='T'){flag=2;t++;}else{return "NO";}     }if(a2==0)return "NO";if(p!=1)return "NO";if(t!=1)return "NO";if(a1*a2==a3)result="YES";elseresult="NO";return result;
}
int main()
{int i,n;cin>>n;string s;for(i=0;i<n;i++){cin>>s;if(i!=n-1)cout<<judge(s)<<endl;elsecout<<judge(s);}return 0;
}

欢迎点赞、评论、收藏,有任何问题,评论区一起讨论吧!

更多题解
pat 乙级 题解汇总(持续更新)(C++)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C】printf按8进制、10进制、16进制输出以及高位补0

#include <iostream> #include <iomanip> #include "Circle.h" // Circle class declaration file int main() { int PrintVal 9;/*按整型输出&#xff0c;默认右对齐*/printf("%d\n",PrintVal);/*按整型输出&#xff0c;补齐4位的宽度&#…

pat 乙级 1005 继续(3n+1)猜想(C++)

题目 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复杂。 当我们验证卡拉兹猜想的时候&#xff0c;为了避免重复计算&#xff0c;可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&#xff0c;我们需要计算 3、5、8、4、…

带有Spring Boot和Spring Cloud的Java微服务

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 Java是开发微服务架构时使用的一种很棒的语言。 实际上&#xff0c;我们行业中的一些知名人士…

pat 乙级 1018 锤子剪刀布(C++)

题目 两人玩锤子剪刀布&#xff0c;现给出两人的交锋记录&#xff0c;请统计双方的胜、平、负次数&#xff0c;并且给出双方分别出什么手势的胜算最大。 输入格式&#xff1a; 输入第 1 行给出正整数 N&#xff08;≤105 &#xff09;&#xff0c;即双方交锋的次数。随后 N …

Terminal中输入一行命令快速移动光标至行首行尾

Linux&#xff1a;### ①快速移动光标至行首 **Home或CtrlA ** ②快速移动光标至行尾 **End或CtrlE ** ③从光标处开始删除&#xff0c;直到行尾 **CtrlK ** ④到下一行 **CtrlN 或 方向键&#xff1a;↓ ** ⑤到上一行 **CtrlP 或 方向键&#xff1a;↑ **

nio2和nio2_列出和过滤NIO.2中的目录内容

nio2和nio2在Java 7发行之前&#xff0c;列出目录内容的领域并没有发生太多事情。但是&#xff0c;由于NIO.2引入了一种新的方法来做到这一点&#xff0c;因此覆盖这一领域可能是值得的。 NIO.2的一大优点是能够在一个方法调用中立即使用列表和过滤。 这为与文件系统相关的大多…

pat 乙级 1033 旧键盘打字(C++)

题目 旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文…

修改typora主题的字体

简 述&#xff1a; 在 mac 中修改 typora 主题的英文和中文的字体&#xff0c;使得码字更加舒服&#xff08;win 也有效&#xff09;。 [TOC] 本文初发于 “偕臧的小站“&#xff0c;同步转载于此。 书写环境&#xff1a; &#x1f4bb;&#xff1a; MacOS 10.14.6 &#x1…

在ADF 12.2.1.3中使用基于JSON的REST Web服务

以前&#xff0c;我曾发布过有关在ADF中使用基于ADF BC的REST Web服务的信息。 现在&#xff0c;本文讨论使用通用数据控件使用基于JSON的REST Web服务。 您也可以查看有关Web服务的先前文章&#xff0c;以获取更多信息。 在ADF 12.2.1中使用应用程序模块快速创建SOAP Web服务…

C++中字符型和整型的关系

文章目录结论测试字符与字符字符与数字实用小技巧字符转数字数字转字符ASCII的特点结论 字符型就是整型&#xff0c;对应的整数由ASCII(美国信息交换标准代码)规定。字符和整数&#xff0c;或者字符和字符进行运算时&#xff0c;结果为int。与整型的运算规则完全一样。 测试 …

hibernate 调试_Hibernate调试–查找查询的来源

hibernate 调试Hibernate为何在程序的哪个部分以及在哪个部分中生成给定SQL查询并不总是立即的&#xff0c;尤其是当我们处理的是我们自己编写的代码时。 这篇文章将介绍如何配置Hibernate查询日志记录&#xff0c;并将其与其他技巧一起使用&#xff0c;以找出在程序中执行给定…

Ubuntu终端多窗口分屏Terminator

1、安装 Terminator最大的特点就是可以在一个窗口中打开多个终端 sudo apt-get install terminator2、快捷键 F11 全屏 CtrlShiftE 垂直分割窗口 CtrlShiftO 水平分割窗口CtrlShiftC 复制 CtrlShiftV 粘贴CtrlTab 在分割的各窗口之间切换 CtrlShiftPageDown 在相邻的两个窗…

专业QA如何实施可靠的CI / CD管道?

过时的传统软件开发方法并不能接管不断升级的市场趋势&#xff0c;并且这些方法缺乏解决方案&#xff0c;这些解决方案无法满足引入“ 持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09; ”的快速软件发布的日益增长的需求。 除CI / CD之外&#xff0c;…

C语言中的宏定义

简单宏定义 简单的宏定义有如下格式&#xff1a; [#define指令&#xff08;简单的宏&#xff09;]  #define 标识符替换列表替换列表是一系列的C语言记号&#xff0c;包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时&…

solr analyzer_查看您的Solr缓存大小:Eclipse Memory Analyzer

solr analyzerSolr使用不同的缓存来防止请求期间过多的IO访问和计算。 如果索引不是很频繁发生&#xff0c;则可以通过使用这些缓存来获得巨大的性能提升。 根据索引数据的结构和缓存的大小&#xff0c;它们可能会变得很大&#xff0c;并占用堆内存的很大一部分。 在本文中&…

好用的电脑软件总结

一 科研 1 阅读软件 Citavi 文献阅读软件小绿鲸SCI 文献翻译软件文献翻译阅读软件 &#xff1a;Quicker沙拉查词 来自 https://mubu.com/doc/vWDgwhwdg0 注&#xff1a;沙拉查词可能出现翻译后仍然保持选中的状态&#xff0c;鼠标无法自由移动&#xff0c;针对这种情况&#…

笔记本启动与关闭自带键盘

Win S打开搜索界面 输入cmd 以管理员权限打开 执行以下命令 如果是关闭键盘 sc config i8042prt start disabled如果是开启键盘 sc config i8042prt startauto对应的注册表位置&#xff1a; [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt] "S…