1003 我要通过! (20 分)

PAT乙级 1003. 我要通过!(20) - 张乐乐章 - 博客园 https://www.cnblogs.com/zle1992/p/5893564.html
以上的主要内容,补充的主要是,AC代码
用指针,完成字符计数,通过作差取得,而非使用计数器。另外,满足复杂条件的YES,else取NO
flag 0 1 2也巧妙

/*
	Name: 
	Copyright: 
	Author: 
	Date: 18/01/19 21:18
	Description: 这里面指针的妙用,让我又是一开眼界,可以这样处理字符串的字符个数计数,我还用计数器,傻乎乎的。 
*/
#include<stdio.h>
#include<string.h>
 
int main(){
    int n,i,j;
    int cntp=0,cntt=0,cnta=0,flag=1;
    char s[101];
    char *p1,*p2;
    scanf("%d",&n);
    for(i=0;i<n;++i){
        scanf("%s",&s);
        cntp=0,cntt=0,cnta=0,flag=1;
        for(j=0;s[j]!='';j++)
        {
            if(s[j]=='P') cntp++;
            else if(s[j]=='A') cnta++;
            else if(s[j]=='T') cntt++;
            else  {flag=2;   break;}
        }
        if(flag==1&&cntp==1&&cntt==1&&cnta!=0)
        {
            p1=strchr(s,'P');
            p2=strchr(s,'T');
            if((p1-s)*(p2-p1-1)==strlen(p2)-1)
                flag=0;
        }
        if(flag==0) printf("YES
");
        else  printf("NO
");
    }
   
    return 0;
}
原文地址:https://www.cnblogs.com/lingr7/p/10289795.html