python PAT 1003

博客展示了一段Python代码,用于判断输入字符串是否符合特定规则。代码通过统计字符串中'P'、'A'、'T'的数量,结合字符位置关系进行判断。同时强调在判断时要确保字符串仅含这三种字符,给出了简单的实现方式。
摘要由CSDN通过智能技术生成
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)就是字符串的长度,我觉得这个实现方式是最简单的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值