zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practise (中文)- 1003. 我要通过!(20)

    http://www.patest.cn/contests/pat-b-practise/1003

    答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。

    得到“答案正确”的条件是:

    1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;
    2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
    3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。

    现在就请你为PAT写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。

    输入格式: 每个测试输入包含1个测试用例。第1行给出一个自然数n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过100,且不包含空格。

    输出格式:每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出YES,否则输出NO。

    输入样例:
    8
    PAT
    PAAT
    AAPATAA
    AAPAATAAAA
    xPATx
    PT
    Whatever
    APAAATAA
    
    输出样例:
    YES
    YES
    YES
    YES
    NO
    NO
    NO
    NO

     1 #include<stdio.h> 
     2 #include<string.h> 
     3 
     4 int judgePAT(char str[],const int len)
     5 {
     6     if(len<3)
     7         return 0;
     8     
     9     int iP=0,iT=0;
    10     int lenP=0,lenT=0;
    11     int len1=0,len2=0,len3=0;
    12     
    13     for(int i=0;i<len;i++)
    14     {
    15         if( 'P'==str[i] && 0==lenP)
    16         {
    17             iP=i;
    18             lenP++; 
    19         }
    20         else if('A'==str[i])
    21         {
    22              if(lenT)
    23                  len3++;
    24              else if(lenP)
    25                  len2++;
    26              else
    27                  len1++;
    28         }
    29         else if('T'==str[i] && 0==lenT && 1==lenP )
    30         {
    31             iT=i;
    32             lenT++; 
    33         }
    34         else
    35             return 0;
    36     }
    37     
    38     if( 1==lenP && 1==lenT && len2>0 )
    39         if(len1*len2==len3)
    40             return 1;
    41             
    42     return 0; //NO
    43 }
    44 int main()
    45 {
    46     int n=0;
    47     char str[10][110];
    48     scanf("%d",&n);
    49     getchar();
    50     
    51     for(int i=0;i<n;i++)
    52     {
    53         gets(str[i]);            
    54         if(judgePAT(str[i],strlen(str[i])))
    55             printf("YES");
    56         else
    57             printf("NO");
    58         if(i<n-1)
    59             printf("
    ");
    60     }
    61     return 0;                  
    62 }
  • 相关阅读:
    Unity网格合并_材质合并
    windows7任务管理器内存相关列详细解释
    移动平台unity3d优化
    各种移动GPU压缩纹理的使用方法
    opengl VAO ,VBO
    GPU 与CPU的作用协调,工作流程、GPU整合到CPU得好处
    Unity3d的批渲染 batch rendering
    Android真机调测Profiler
    图片占用内存计算方法
    Unity3D–Texture图片空间和内存占用分析
  • 原文地址:https://www.cnblogs.com/asinlzm/p/4463803.html
Copyright © 2011-2022 走看看