水草精 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;
    }
    
    评论

报告相同问题?

悬赏问题

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