Python 编程练习:字母串校验器

本练习要求你编写一个 Python 程序,用于自动批改学生提交的字母串,判断其是否符合给定的规则。规则如下:

  • 如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
  • 如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写;
  • 当然也可以什么都不写,就结束这个字母串。

例如 'aAaABCDdcbBC' 就是一个合法的字母串;而 'dEFfeFGhI' 就是非法的。注意 'a' 没有前一个字母, 'Z' 也没有下一个字母。

输入形式

  • 输入在第一行给出一个不超过 100 的正整数 N。
  • 随后 N 行,每行给出一位学生的作业,即仅由英文字母组成的非空字母串,长度不超过 2 x 106。

输出形式

  • 对每位学生的作业,如果正确就在一行中输出 Y,否则输出 N。

示例

输入:

2
aAaABCDdcbBC
dEFfeFGhI

输出:

Y
N

Python 代码

n = int(input())
for i in range(n):
    s = input().strip()
    flag = True
    for j in range(len(s)):
        if s[j].isupper():
            if j == len(s) - 1 or (s[j+1] != s[j].lower() and ord(s[j+1]) - ord(s[j]) != 1):
                flag = False
                break
        elif s[j].islower():
            if j == len(s) - 1 or (s[j+1] != s[j].upper() and ord(s[j]) - ord(s[j+1]) != 1):
                flag = False
                break
    if flag:
        print("Y")
    else:
        print("N")

代码解析

  • 首先,读取输入的 N 和 N 行的字母串。
  • 对于每个字母串,使用 flag 变量记录是否符合规则。
  • 遍历字母串,判断每个字母是否符合规则:
    • 如果是大小写字母,则判断下一个字母是否符合规则。
    • 如果是最后一个字母,则判断是否符合规则。
  • 根据 flag 的值输出 Y 或 N。

注意:

  • 代码中使用了 ord() 函数获取字母的 ASCII 码,方便比较字母之间的顺序。
  • 本代码示例仅供参考,你可以根据自己的理解和编程习惯进行修改和优化。
Python 编程练习:字母串校验器

原文地址: https://www.cveoy.top/t/topic/n9O9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录