1003
package com.company; import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner sc=new Scanner(System.in); int n=Integer.parseInt(sc.nextLine()); String[] testStr=new String[n]; int i,j,k; //全部输入 for(int a=0;a<n;a++){ testStr[a]=sc.nextLine().toString(); } //全部输入完成之后再进行打印结果 for(i=0;i<n;i++){ char[] testChar=testStr[i].toCharArray(); //依次将输入的字符串作为字符型数组打印 //System.out.println(testChar); //对数组testChar进行遍历,如果符合条件,即输出YES,否则输出NO,65 80 84 32 bgm:for(j=0;j<testChar.length;j++){ if (j==0&testChar[j]==80){ break bgm; } for (int x = 0; x < j; x++) { for (int y = j + 1; y < testChar.length; y++) { if ((testChar[j] == 80) & (testChar[x] != 80) & (testChar[y] != 80)) { if (testChar[x] == 'A'&testChar[y] == 'A'){ //System.out.println(testChar[j]); break bgm; } } } } } bgn:for(k=0;k<testChar.length;k++){ if (k==testChar.length-1&testChar[k]==84){ break bgn; } for(int c=0;c<k;c++){ for(int d=k+1;d<testChar.length;d++){ if ((testChar[k]==84)&(testChar[c]!=84)&(testChar[d]!=84)){ if (testChar[c] == 'A'&testChar[c] == 'A'){ //System.out.println(testChar[j]); break bgn; } } //System.out.println(k); } //System.out.println(k); } //System.out.println(k); } if(j*(k-j-1)==(testChar.length-k-1)&testChar.length>2){ System.out.println("YES"); // System.out.println(j); // System.out.println(k); }else{ System.out.println("NO"); // System.out.println(j); // System.out.println(k); } } } }
这道题真心费脑子,昨晚研究到一点,才有一些收获,没完全搞完,但是用IDEA DEBUG之后,尝试着修改也算一步步达到自己的期望值,觉得自己差很多,如果现在的水平参加PAT应该不能及格,算法和逻辑思维没训练过,确实很欠缺,在多层循环嵌套下,准确拿到你要的值,并进行操作,这并不容易,心思要缜密。
勿在浮沙筑高台