PTA乙級題 1003 我要通過! (20 分)
阿新 • • 發佈:2018-11-09
1003 我要通過! (20 分)
“答案正確”是自動判題系統給出的最令人歡喜的回覆。本題屬於 PAT 的“答案正確”大派送 —— 只要讀入的字串滿足下列條件,系統就輸出“答案正確”,否則輸出“答案錯誤”。
得到“答案正確”的條件是:
- 字串中必須僅有
P
、A
、T
這三種字元,不可以包含其它字元; - 任意形如
xPATx
的字串都可以獲得“答案正確”,其中x
或者是空字串,或者是僅由字母A
組成的字串; - 如果
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
#include<stdio.h> #include<string.h> int main() { char str[1005]; int n; scanf("%d",&n); int left=0; int right=0; int flag=0;int flag_1=0; while(n--){ scanf("%s",str); flag=0; flag_1=1; left=0; right=0; for(int i=0;i<strlen(str);i++){ if(str[i]=='A'){ flag_1=0; break; } } for(int i=0;i<strlen(str);i++){ if(str[i]!='P'&&str[i]!='T'&&str[i]!='A'){ flag=1; break; } if(str[i]=='P'){ left=i; }else if(str[i]=='T'){ right=i; } } int len = strlen(str); if(flag==0&&flag_1==0){ if(left==0&&right==len-1){ printf("YES\n"); }else if(left*(right-left-1)==(len-1-right)){ if(left!=0){ printf("YES\n"); }else{ printf("NO\n"); } }else{ printf("NO\n"); } } if(flag==1||flag_1==1)printf("NO\n"); } return 0; }