水草精 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 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决