文章目录

  • 题目要求
  • 利用str函数
  • 利用正则表达式

题目要求

1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
3.如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。

利用str函数

根据条件推断:
条件1:

  • 可设置一个set然后遍历判断是否存在其他字符
  • 或 利用count函数得出字符串中’P’,‘A’,'T’三个字符的数量之和并与字符串总长相比较

条件2&3:

  • P和T都有且仅有一个且P在T之前,A至少存在一个;
  • 用a1、a2、a3分别代表a、b、c中A的数量
  • 任意aPbATca形都是由aPbTc形得来的,而最基本的aPbTc形为xPATx(即PAT,APATA,AAPATAA…)所以应该有:
  • a1*a2==a3

def f(s):length=len(s) a1,a2,a3=0,0,0PN,TN,AN=s.count('P'),s.count('T'),s.count('A')if PN!=1 or TN!=1 or AN<1 or PN + TN + AN < length:return FalseP=s.find('P') T=s.find('T') a1=P a2=T-P-1 a3=length-T-1 if not a1 * a2 == a3:return Falsereturn Truen=int(input())
for i in range(n):s=input()if f(s):print('YES')else:print('NO')

利用正则表达式

形如xPATx、 aPbTc、aPbATca一类的,以正则表达式的形式表示是:^(A*)P(A+)T(A*)
接下来利用re中的分组功能分组后判断每组字符串长度即可

import redef f(s):a=re.match(r'^(A*)P(A+)T(A*)$',s) #匹配成功返回一个Match对象,失败返回Noneif a:if len(a.group(1))*len(a.group(2))==len(a.group(3)):return Trueelse:return Falseelse:return Falsen=int(input())
for i in range(n):s=input()if f(s):print ('YES')else:print ('NO')

PTA1003 python3相关推荐

  1. pip 无法卸载 pillow 解决方案 Not uninstalling pillow at /usr/lib/python3/dist-packages

    1. 问题现象 使用 pip 卸载 pillow 时无法卸载,报如下错误: $ sudo pip3 uninstall pillow Not uninstalling pillow at /usr/l ...

  2. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  3. Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建

    Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建 一.Anaconda 创建 python3.7环境 1.进入 C:\Users\用户名 目录下,找到 ...

  4. python2转python3文件

    python37 -m 2to3.py -w C:\Users\Administrator\Desktop\搜狗细胞词库处理.py 命令 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA ...

  5. Python3:ImportError: No module named 'compiler.ast'

    from compiler.ast import flatten 上面这条语句好像在python3 以后就废除了,如果使用的话就会报错. Traceback (most recent call las ...

  6. 安装win下的Anaconda ----针对python3.6.4版本

    我的python版本是3.6.4, Anaconda下载地址: Anaconda官网:https://repo.anaconda.com/archive/ 清华大学镜像站:https://mirror ...

  7. Python3 reversed 函数

    描述 reversed 函数返回一个反转的迭代器. 语法 以下是 reversed 的语法: reversed(seq)(seq) 参数 seq -- 要转换的序列,可以是 tuple, string ...

  8. Python3 try-except、raise和assert解析

    20220221 案例 def product(x):result = 1print(x)count = 0for i in x:try:result *= float(i)except Except ...

  9. Windows10+anaconda,python3.5, 安装glove-python

    Windows10+anaconda,python3.5, 安装glove-python 安装glove 安装之前 Visual C++ 2015 Build Tools 开始安装 安装glove 最 ...

最新文章

  1. 深度剖析云计算背后采用的具体技术
  2. C#获取当前系统磁盘符、系统目录、桌面等
  3. linux6同步时间,centos 6.x 同步网络时间
  4. kubernetes之node 宕机,pod驱离问题解决
  5. spring学习(四) ———— 整合web项目(SSH)
  6. Kafka常用运维操作命令
  7. Delphi入门教程
  8. C语言贪吃蛇 新手入门(超详细)
  9. 宏文件下载_技能 | WPS如何启用宏功能,VBA组件安装
  10. 物业设备与设施管理【1】
  11. 基于php的地铁查询系统,动手构建地铁关系网,实现最短路径查询
  12. 圣诞小程序服务器,微信圣诞帽2018小程序_微信圣诞帽头像自动换预约_第一手游网...
  13. ubuntu mysql的my.cnf_Ubuntu下面MySQL的参数文件my.cnf浅析
  14. 【机器学习入门到精通系列】OVR SVMs
  15. 语音处理:音频信号短时平稳性分析
  16. 男子机场过安检爆炸 小米移动电源合乎规格吗?
  17. antd下载文件小结
  18. Java实现的经典坦克大战小游戏
  19. k8s-node暂停和排水
  20. signature=fd82bf674fc173553f5da4f30d99acae,Munition device

热门文章

  1. R 计算均方差MSE(mean squared error)
  2. 有趣的23000----整理(07)A词根
  3. (19年最新,操作极简)linux下使用xmind zen破解版
  4. python plt pyplot matplotlib绘图时形状异常
  5. cad两直线相交画圆弧_CAD两直线,如何用圆弧连接?
  6. cad旋转命令_CAD中根据角度画圆弧的方法有哪些?【AutoCAD教程】
  7. 目录-Amira用户指南
  8. 基于Word2vec加TextRank算法生成中文新闻摘要(附python代码)
  9. 南京工资个税计算机,南京个税计算器_南京税后月薪|工资计算器_南京个人所得税查询 - Tax518...
  10. 毕业寄语 | 关于毕业季的温柔文案