CnMarijuana 2017-10-24 09:53 采纳率: 100%
浏览 387

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

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

图片说明

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作