字母P之前A的数量乘以P和T之间A的数量等于T之后的数量
PosP*(PosT-PosP-1)==str.length()-PosT-1

知道这个规律以后这道题就很简单了

解题思路

  1. 首先输入一个小于10的正整数n

  2. 用循环将n个字符串存入数组中

  3. 对每一个数组中的字符串进行下面的操作
    (记录字符串中“P”,“A”,“T”出现的次数和“P”,“T”出现的位置,如果这些数据满足上述公式输出“Yes”or“No”即可)

~~

完整代码如下:

~~

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {//输入流键入所有数字BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));int a = Integer.parseInt(bf.readLine());String str[] = new String[a];//新建一个大小为a的字符串,存储每次输入的字符串for (int i = 0; i < a; i++) {str[i] = bf.readLine();}for (int j = 0; j < a; j++) {System.out.println(Judge(str[j]));}}public static String Judge(String str) {int numA = 0, numP = 0, numT = 0;int posP = 0, posT = 0;//遍历输入的字符串for (int i = 0; i < str.length(); i++) {if (str.charAt(i) == 'A') {//记录出现A的次数numA++;} else if (str.charAt(i) == 'P') {//记录出现P的次数,并记录位置numP++;posP = i;} else if (str.charAt(i) == 'T') {//记录出现T的次数,并记录位置numT++;posT = i;}}//判断条件:P、A、T构成字符串整体,只有一个P、T,至少有一个A,P、T位置按照下面公式排列if (numA + numP + numT == str.length() && numA != 0 && numP == 1 && numT == 1 && posP * (posT - posP - 1) == str.length() - posT - 1)return "YES";elsereturn "NO";}
}

PAT_B_1003_Java(20分)相关推荐

  1. 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)

    7-1 查找书籍(20 分) 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价. 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息.每本书 ...

  2. PTA—输出全排列 (20分) 递归回溯思想

    PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...

  3. 2、求100以内的素数之和。(20分)

    题目: /* 2.求100以内的素数之和.(20分) */ 代码: public class Two207 {public static void main(String[] args) {int s ...

  4. 1、输入四个整数,按照从小到大顺序输出。(20分)

    题目: /* 1.输入四个整数,按照从小到大顺序输出.(20分) */ 代码: 注:题目说的是四个数的排序,我就直接写了个冒泡排序 public class One207 {public static ...

  5. /* * 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“

    题目: 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 *****************    所谓" ...

  6. /* * 编程题第四题(20分): 用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。 */

    题目: /* 编程题第四题(20分): 用1元5角钱人名币兑换5分.2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案. */ 我使用java做的 public class ...

  7. /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */

    题目: /* 编程第三题(20分) 打印所有的水仙花数.所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身.(例153=111+333+555) */ 我是用java做的 public cla ...

  8. /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */

    题目: /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第十次落地时,共经过多少米?第十次反弹多高? */ 我是用java做的 public ...

  9. /* * 编程第一题(20分): 1+(1+2)+(1+2+3)+……+(1+2+3+……+98+99+100) */

    题目: /* 编程第一题(20分): 1+(1+2)+(1+2+3)+--+(1+2+3+--+98+99+100) */ 我是用的java做的 class One {public static vo ...

最新文章

  1. oracle em 乱码问题
  2. Word2013、2016中页码总页数设置为当前节总页数
  3. vue打包后element-icon不显示问题解决
  4. React中setState修改深层对象
  5. Android进阶笔记09:Android 万能适配器
  6. C# Task的简单使用
  7. 从体验上拉开差距,Serverless 将成就云计算的下一个 10 年!
  8. abap 函数远程启用的模块参数_SAP AMDP介绍 - ABAP托管的HANA数据库过程
  9. myisam数据表根据frm文件恢复数据表
  10. iis7.5 php虚拟站点目录设置,windows2008中IIS7.5环境下 Fastcgi模式PHP配置教程
  11. npm install vs. update - 有什么区别?
  12. 如何成为一个网红照骗?一个插件搞定,亲妈都认不出!
  13. 国内域名国内服务器,不备案解决80端口不开放方法
  14. 高校邦python网课答案_高校邦编程之美——python网课答案公众号
  15. matlab求两向量夹角_10373 高中立体几何向量法全攻略
  16. 英语用法整理_用语库
  17. matlab制作钟表,利用Matlab制作钟表实例教程
  18. 【2021-12-22】【Kotlin】Type inference failed. Expected type mismatch: inferred type is HashSet but Set
  19. matlab 狄利克雷函数代码,狄利克雷函数
  20. 怎样学习有限元分析才能更快?

热门文章

  1. Hopsan -- 液压、电力等行业的仿真开源软件
  2. Android开发之Dialog对话框(弹框)工具类
  3. CoreText入门
  4. 513. Find Bottom Left Tree Value
  5. HTTPS配置全记录
  6. 发现一个CentOS第三方源epel的仓库地址(repos.fedorapeople.org)
  7. MySql详解(六)
  8. 直播平台虚拟币与人民币的关系
  9. \Grokking Algorithms\简介与作者采访
  10. iOS开发-开发总结(四)