首页 > 编程语言 >★★★PAT 1003 我要通过!Python

★★★PAT 1003 我要通过!Python

时间:2022-09-25 15:22:26浏览次数:79  
标签:PAT NO Python 我要 re 正则 字符串 YES 1003

★★★PAT 1003 我要通过! Python

方案:正则匹配+数学归纳

题目

作者 CHEN, Yue 单位 浙江大学

答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。

得到“答案正确”的条件是:

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

现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。

输入格式:

每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (≤10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。

输出格式:

每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出 YES,否则输出 NO

输入样例:

10
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA
APT
APATTAA

输出样例:

YES
YES
YES
YES
NO
NO
NO
NO
NO
NO

鸣谢江西财经大学软件学院朱政同学、用户 woluo_z 补充测试数据!

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

代码

  • 有注释
# 思路:正则匹配、数学归纳
# 导入正则模块re
# re正则模块可以提供Perl风格正则表达式模式
import re

# int型n,控制循环次数
n = int(input())

for i in range(n):
    s = input()
    # 正则匹配:解决条件一,仅有且必有P、A、T
    # re.match(pattern,string):判断string与pattern是否匹配
    # 	r"...":正则表达式以r起头,具体内容放在""内
    # 	A*:表示*前的字符可以出现0次、1次、或多次
    # 	A+:表示+前的字符,至少出现一次
    if re.match(r"A*PA+TA*", s):
        # re.split(pattern,string):将string根据pattern分段
        # 	r"[P|T]":r"..."正则表达式,[P|T]匹配P或T
        # 	re.split(r"[P|T]", s):把s从P、T分为三段
        a = re.split(r"[P|T]", s)
        # 数学归纳:条件二三,字符串a、b、c三者数学关系
        # ★★★c = a * len(b)
        if a[2] == a[0]*len(a[1]):
            print("YES")
        else:
            print("NO")
    else:
        print("NO")
  • 无注释
import re

n = int(input())

for i in range(n):
    s = input()
    if re.match(r"A*PA+TA*", s):
        a = re.split(r"[P|T]", s)
        if a[2] == a[0]*len(a[1]):
            print("YES")
        else:
            print("NO")
    else:
        print("NO")

标签:PAT,NO,Python,我要,re,正则,字符串,YES,1003
From: https://www.cnblogs.com/haixie2319/p/16727936.html

相关文章

  • mac配置python环境变量
    1,whichpython3.72,vim~/.bash_profile3,#settingpathforpython3.7PATH=”/usr/local/bin:${PATH}”exportPATH PATH=”/Library/Frameworks/Python.framework/......
  • python-the first week
    python-thefirstweek目录python-thefirstweektypora软件安装文件路径markdown语法标题小标题语言环境表格表情查看源代码图片展示水平线目录链接下划线使用删除线计算......
  • Python每周总结——Week01
    Python每周总结——Week01目录Python每周总结——Week01Day_01:1、计算机的五大组成部分2、Typora软件的使用3、进制数4、计算机文件路径Day_02:1、计算机的三大核心硬件......
  • python中的刽子手游戏
    python中的刽子手游戏使用python编程构建游戏总是很有趣。本项目涉及相同。刽子手游戏或更像是“猜词”游戏是良好的交互式Python学习的最佳程序。在这里,用户必须猜一......
  • 在 Python 初学者中创建井字游戏
    在Python初学者中创建井字游戏我们都有和朋友一起玩井字游戏的有趣回忆,不是吗?这是在任何地方玩的最有趣和最有趣的游戏,您只需要一支笔和一张纸。只需应用一些核心概念,我......
  • 本周回顾-- 计算机基础、python、pycharm、基本数据类型
    1、计算机基础1.1计算机组成部分:1、控制器2、运算器(控制器+运算器=cpu)3、存储器 内存:速度快,断电失效 外寸:硬盘,速度相对慢,永久保存4、输入设备 鼠标,键盘5、输出设......
  • 14.4 Python中的包
     #目录和包的区别   #模块的导入的2种方式 #模块1module_Aa=10 #模块2moduleBb=100#模块3名称:demo55'''使用import方式进行导入时,只能跟......
  • Python安装PIL报错:No module named 'PIL'的解决方法
    在Python中,如果import了PIL,但是本机上并没有安装相应的组件,在运行py程序时会报错:ModuleNotFoundError:Nomodulenamed'PIL'。D:\Python\PY>MYPYAPP.pyTraceback(mos......
  • Python安装win32gui报错:No module named 'win32gui'的解决方法
    在Python中,如果import了win32gui,但是本机上并没有安装响应的组件,在运行py程序时会报错:ModuleNotFoundError:Nomodulenamed'win32gui'。D:\Python\PY>MYPYAPP.pyTrac......
  • Python列表、元组、字典、集合区别
    一、列表 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的  2.通过偏移读取 组成列表的值叫做元素(Elements)。每一个元素被标识一个......