解析答案如下:
import java.util.Scanner;
/*
关键是搞懂题目,(P之前的A)*(P与T之间的A)=(T后面的A)
*/
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String str[] = new String[n];
for(int i=0; i<n; i++){
str[i] = sc.next();
}
for(int i=0; i<n; i++){
System.out.println(StrTrueOrFalse(str[i]));
}
}
//s.charAt(1)是:s为字符串,输出字符串位置为1的数。
//可str[1].charAt(1)即为数组位置为一的位置为一的字符
public static String StrTrueOrFalse(String s){
int NumA=0,NumP=0,NumT=0;
int PosP=0,PosT=0;
for(int i=0; i<s.length(); i++){
if(s.charAt(i)==‘A‘){
NumA++;
}
if(s.charAt(i)==‘P‘){
NumP++;
PosP=i;
}
if(s.charAt(i)==‘T‘){
NumT++;
PosT=i;
}
}
if(NumA+NumP+NumT==s.length() && NumA!=0 && NumP==1 && NumT==1 && PosT-PosP>1 && PosP*(PosT-PosP-1)==s.length()-PosT-1 ){
return "YES";
}else {
return "NO";
}
}
}
Java|PTA乙级|1003 我要通过! (20分)|解析
原文:https://www.cnblogs.com/niujiajun/p/14348923.html