在刷PAT乙级第三个题,看了两天了弄不出来,
感觉判断算法没问题,但是在主类中调用的时候就会出现错误。
详见图
import java.util.Scanner;
public class Test
{
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
String[] arr = new String[n];
for(int i = 0; i < arr.length; i++)
{
arr[i] = cin.nextLine();
}
for(int i = 0; i < arr.length; i++)
{
if(Tool.judge(arr[i]))
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
}
}
}
class Tool
{
public static boolean judge(String str)
{
int pNum = 0;
int tNum = 0;
int aNum = 0;
for( int i = 0; i < str.length(); i++)
{
switch(str.charAt(i))
{
case'P': pNum += 1; break;
case'T': tNum += 1; break;
case'A': aNum += 1; break;
default: return false;
}
}
if(pNum != 1||tNum != 1)
{
return false;
}
str = str.substring(str.indexOf('P'));
if(str.indexOf('P') > str.indexOf('A')||str.indexOf('P') > str.indexOf('T')||str.indexOf('A') > str.indexOf('T'))
{
return false;
}
if((str.indexOf('T')-str.indexOf('P')) > 3)
{
return false;
}
return true;
}
}