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)就是字符串的长度,我觉得这个实现方式是最简单的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值