字符串数组长度和其他问题

在刷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;
    }
}

图片说明