SP4551 ANARC08C - Match Maker

题目描述

在计算机科学中,模式匹配是指验证某个序列是否符合指定的模式。我们通常使用一种基于正则表达式的语言来表示这些模式。在这个问题中,我们通过简单的正则表达式来表示由十进制数字组成的序列的模式。 一个模式可以由一个或多个十进制数字('0' 到 '9')、星号('*')和井号('#')构成。星号 '*' 表示一串偶数长度的数字,而井号 '#' 表示一串奇数长度的数字。例如,模式 "129" 仅匹配数字序列 129。模式 "1*3" 则匹配所有以 1 开始、以 3 结束且中间部分是偶数个数字的序列。再举例,模式 "#55" 可以匹配 155、12355、1234555,但不匹配 55、1255、123455。 你的任务是编写一个程序,判断给定的序列是否符合某个给定的模式。

输入格式

程序将处理一个或多个数据集。每个数据集包含一行模式和一个或多个需要匹配的序列。每组数据集的第一行是模式描述,接下来的每一行是需要匹配的序列。数据集的结束标识是 "END"(不含引号),而最后一个数据集则以 "QUIT" 作为结束标志。注意:每行的长度不超过 100,000 个字符。

输出格式

对于每组数据集中的每个测试序列,输出结果格式如下: ``` k.s. result ``` 其中,k 表示测试用例的编号(从 1 开始),s 表示每个测试用例内的序列编号(从 1 开始),result 表示序列是否与模式匹配。如果匹配,输出 "match";否则,输出 "not"。 **本翻译由 AI 自动生成**