题目背景描述了此题 idea 的来源,跳过此部分不影响做题。
彭彭负责管理车南大学的一些群聊,她写了一个自动审核插件,用来自动审核新入群的成员。
新入群的群成员需要提供自己的姓名和一卡通号,插件会自动检查姓名和一卡通号的格式是否合法,如果合法,就自动通过审核。否则拒绝入群并发送一条消息,告知用户一卡通号格式错误。该用户以后进入人工审核通道。
于是,她写出来的正则表达式长这样:
\s*([\u4e00-\u9fa5]+)\s*[-+\s]?\s*(21\d{7})\s*|\s*(21\d{7})\s*[-+\s]?\s*([\u4e00-\u9fa5]+)\s*
车南大学的一卡通号是 9 位数字,其中前两位 21 是神秘代码,第三位是类型代码,第四到五位是年份代码,剩下四位是编号代码,具体的:
21 保持不变,代表车南大学。3 代表本科生,4 代表研究生。24 代表 2024 年入学,25 代表 2025 年入学,以此类推。我们称一个一卡通号是合法的,当且仅当它满足上述条件,即:
21。3 或 4。给你一个一卡通号,你需要判断它是否合法,如果合法,输出 YES,否则输出 NO。
输入一行字符串,包含一个九位数字一卡通号。
输出一行,包含一个字符串,表示一卡通号是否合法。大小写敏感
213240001
YES
213240000
NO
203240001
NO