我要通过!
n = input("")
n = int(n)
flag = 0
while n:
a = input('')
l = len(a)
p = 0
aa = 0
t = 0
a0 = 0
a1 = 0
a2 = 0
for i in range(l):
if a[i] == 'P':
p = p+1
elif a[i] == 'A':
aa = aa+1
elif a[i] == 'T':
t = t+1
elif a[i] ==' ':
pass
else:
flag = 0
break
if p==1 and a[i]=='A'and t==0 :
a1 = a1+1
elif p==0 and a[i]=='A'and t==0 :
a0 = a0+1
elif p==1 and a[i]=='A' and t==1 :
a2 = a2+1
if a0*a1==a2 and p==1 and t==1 and a1!=0:
if a[0] =='A' or a[0]==' ' or a[0] =='P' :
flag = 1
else:
flag = 0
else:
flag =0
if flag ==1:
print("YES")
else:
print("NO")
n = n-1
因为这题其实我解了挺久的,小小的说一下这题的思路。
首先题目的意思其实我一开始都没有理解,是百度了以后才明白。除了基本的输入要是PAT之外,在P之前的A的个数乘以P和T之间的A的个数等于T后面A的个数。还有大家不要忘记空格也能被接受噢。
代码思路:首先判断输入字符串中是不是含除了'P','A','T'或者空格之外的字符,在判断的同时也要计算'P','A','T'字符的个数,如果有,直接就跳出循环输出NO。如果通过了第一步测试,然后判断这个字符串是不是A,如果是A,又是哪个位置的A,在统计所有的字符串完毕后,再判断是不是满足 A 的个数的要求,以及P和T顶天了只能有一个且必须有一个,还有第一个字符只有可能是空格或者P或者A。