#559. 一卡通

传统 1000 ms 1024 MiB
标准 IO
文本比较 huan_yp

题目描述

题目背景描述了此题 idea 的来源,跳过此部分不影响做题。

彭彭负责管理车南大学的一些群聊,她写了一个自动审核插件,用来自动审核新入群的成员。

新入群的群成员需要提供自己的姓名和一卡通号,插件会自动检查姓名和一卡通号的格式是否合法,如果合法,就自动通过审核。否则拒绝入群并发送一条消息,告知用户一卡通号格式错误。该用户以后进入人工审核通道。

于是,她写出来的正则表达式长这样:

\s*([\u4e00-\u9fa5]+)\s*[-+\s]?\s*(21\d{7})\s*|\s*(21\d{7})\s*[-+\s]?\s*([\u4e00-\u9fa5]+)\s*

车南大学的一卡通号是 9 位数字,其中前两位 21 是神秘代码,第三位是类型代码,第四到五位是年份代码,剩下四位是编号代码,具体的:

  1. 前两位 21 保持不变,代表车南大学。
  2. 第三位,3 代表本科生,4 代表研究生。
  3. 第四到五位,24 代表 2024 年入学,25 代表 2025 年入学,以此类推。
  4. 第六到九位,是入学序号,从 0001 开始,以此递增,最高 9999。

我们称一个一卡通号是合法的,当且仅当它满足上述条件,即:

  • 前两位固定为 21
  • 第三位是 34
  • 第四到五位年份字段不做限制
  • 后四位入学序号字段不能全为零

给你一个一卡通号,你需要判断它是否合法,如果合法,输出 YES,否则输出 NO

输入格式

输入一行字符串,包含一个九位数字一卡通号。

输出格式

输出一行,包含一个字符串,表示一卡通号是否合法。大小写敏感

样例

样例1

213240001
YES

样例2

213240000
NO

样例3

203240001
NO