水草精 2017-09-15 04:21 采纳率: 0%
浏览 1294
已结题

PAT乙级1003.我要通过

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int i=0,n,j;
        int YN=1;  
        int p1=0,t1=0;
        int p2=0,t2=0;
        Scanner input =new Scanner(System.in);
        n=input.nextInt();
        input.nextLine();
        for(j=0;j<n;j++) { 
            String arr=input.nextLine();
            p2=0;t2=0;
            YN=0;
            int flag1=0,flag=0;
            char[] aa=arr.toCharArray();
            for(i=0;i<aa.length;i++){
                if(aa[i]=='P'){
                    p1=i;
                    p2++;
                }
                if(aa[i]=='T'){
                    t1=i;
                    t2++;
                }
                if(aa[i]=='A'||aa[i]=='P'||aa[i]=='T') flag1++;
            }
            if(flag1==aa.length) flag++;
            if(p1*(t1-p1-1)==(aa.length-1-t1)) flag++;
            if(p2==1&&t2==1) flag++;
            if((t1-p1)>=2) flag++;
            if(flag==4) System.out.println("YES");
            else System.out.println("NO");
        }
    }
}

为什么全错?不至于吧?我为什么错了?

  • 写回答

4条回答 默认 最新

  • 花下泥 2017-09-15 04:30
    关注
     #include <cstdio>
    #include <cstring>
    int main() {
        int n;
        char str[110];
        scanf("%d", &n);
        while (n--) {
            int flag = 0, pcount = 0, tcount = 0, pindex = -1, tindex = -1;
            scanf("%s", str);
            int len = strlen(str);
            for (int i = 0; i < len; ++i) {
                if (str[i] != 'P' && str[i] != 'A' && str[i] != 'T') {
                    flag = 1;
                    break;
                }
                if (str[i] == 'P') {
                    pindex = i;
                    pcount++;
                    if (pcount > 1) {flag = 1; break;}  //若P的数量大于一个则必定为NO,T下同。
                }
                if (str[i] == 'T') {
                    tindex = i;
                    tcount++;
                    if (tcount > 1) {flag = 1; break;}
                }
    
            }
            if ( (len - tindex - 1) - (pindex) * (tindex - pindex - 2) != (pindex) || (tindex - pindex - 2 < 0)) {flag = 1;}
            if (flag)printf("NO\n");
            else printf("YES\n");
        }
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?