python PAT 1003

n=input()
p=0
t=0
while n!=0:
      np = 0
      nt = 0
      na = 0
      s=input()

      for i in range(len(s)):
        if s[i]=='P':
          p=i
          np=np+1   #caculate the number of P
        if s[i]=='A':
          na=na+1
        if s[i]=='T':
          t=i
          nt=nt+1   # caculate the number of T
      if (len(s)-t-1)==(t-p-1)*p and np==1 and nt==1 and na!=0 and (na+np+nt)==len(s): 
          print('YES')
      else:
        print('NO')
      n=int(n)-1


#代码备份,这个题目思路详解网上有,参考了别人的思路用Python所写。
说一下我个人觉得要注意的点是:在可以基本判读通过的时候一定要保证字符串里面只有P,A,T三种字符,不能含有其他的字符,我看到很多别的方法,但是我觉得用A字符出现的次数na,加上P字符出现的次数np,加上T字符出现的次数nt,只有在整个字符串只有这三种字符的时候,才满足na+np+nt=len(s),lens(s)就是字符串的长度,我觉得这个实现方式是最简单的。

猜你喜欢

转载自blog.csdn.net/Saber_lyl/article/details/82145775