游戏指令解析器
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
某款冒险游戏维护了一个指令库,其中包含 条互不相同的完整指令。
玩家会依次输入 条字符串作为输入指令。输入指令可以是完整指令本身,也可以是某条完整指令的前缀(从第 1 个字符开始连续匹配)。
对于每条输入指令 ,定义它与指令库的匹配结果如下:
- 若存在且仅存在一条完整指令 满足: 是 的前缀,则认为 唯一匹配到 ,系统执行该指令,并输出 。
- 若有两条或以上的完整指令都以 作为前缀,则认为 多重匹配,输出
ambiguous。 - 若指令库中不存在任何以 为前缀的完整指令,则认为 无法匹配,输出
unknown。
现在,请你对玩家输入的每条指令,按上述规则输出其匹配结果。
输入格式
第一行包含两个整数 ,分别表示指令库中的完整指令数量,以及玩家输入指令的数量。
接下来 行,每行一个字符串,表示一条完整指令。
接下来 行,每行一个字符串,表示一条输入指令。
输出格式
输出 行。第 行对应第 条输入指令的匹配结果:
- 唯一匹配:输出对应的完整指令;
- 多重匹配:输出
ambiguous; - 无法匹配:输出
unknown。
6 5
attack
defend
move
magic
examine
exit
att
def
mov
ex
e
attack
defend
move
ambiguous
ambiguous
解释 #1
指令库为:attack、defend、move、magic、examine、exit。
att是attack的前缀,且仅匹配这一条,输出attack。def仅匹配defend,输出defend。mov仅匹配move,输出move。ex同时匹配examine与exit,属于多重匹配,输出ambiguous。e同时匹配examine与exit,输出ambiguous。
4 4
open
close
operate
unlock
op
clo
un
cast
ambiguous
close
unlock
unknown
解释 #2
op同时匹配open与operate,输出ambiguous。clo仅匹配close,输出close。un仅匹配unlock,输出unlock。cast无法匹配任何完整指令,输出unknown。
数据范围
- 对于 的评测用例,,;
- 对于 的评测用例,,;
- 对于所有评测用例,,;
- 保证所有指令名称和输入指令的长度均在 之间,所有字符串仅包含小写英文字母,指令库中的完整指令互不相同。