PAT B1003 我要通過!

方法1:

指針

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
	int n;
	scanf("%d",&n);
	getchar();
	char s[110];
	char* p;
	int a,b,c;
	int P,T;
	while(n--){
		scanf("%s",&s);
		a = b= c = 0;
		P = T = 0;  
		p = s;
		while(*p=='A'){
			a++;
			p++;
		}
		if(*p=='P'){
			P++;
			p++;
			while(*p=='A'){
				b++;
				p++;
		}
		if(*p == 'T'){
			T++;
			p++;
			while(*p=='A'){
				c++;
				p++;
		}
		}			
		}
	if(!*p&&b>0&&c ==a*b&&P==1&&T==1){
		printf("YES\n");
	}
	else{
		printf("NO\n");
	}
	}
	return 0;
}

方法2:

條件判斷

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
	int n;
	//freopen("in.txt","r",stdin);
	scanf("%d",&n);
	getchar();
	string s;
	int a,b,c;
	while(n--){
		cin>>s;
		int len = s.length();
		a = b = c = 0;
		int i;
		bool flag = true;
		int P = 0;
		int T = 0; 
		for( i=0;i<len;i++){
			if(s[i]=='A'){
				a++;
			}
		 else if(s[i]=='P')
			{
				P++;
				break;	
			}
			else{
				flag = false;
				break;
			}
		}
		i++;
		for( ;i<len;i++){
			if(s[i]=='A'){
				b++;
			}
			else if(s[i]=='T')
			{
				T++;
				break;	
			}
			else{
				flag = false;
				break; 
			}
		}
		i++;
		for( ;i<len;i++){
			if(s[i]=='A'){
				c++;
			}
			else{
				flag = false;
				break;	
			}
		}
		if(flag){
			if(c==a*b&&b>0&&P==1&&T==1){
				cout<<"YES\n";
			}	
			else{
				cout<<"NO\n"; 
			}			
		}
		else{
			cout<<"NO\n";
		}
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章