#1130. 最长前缀匹配

最长前缀匹配

说明

给定一个英文单词库,和若干需要查询的单词。对于每个需要查询的单词,如果该单词存在于库中则输出该单词,否则输出该单词与这个单词库的最长前缀匹配字母串。例如,假设单词库里有三个单词:apple,append和application,输入的词是applf,那么就拿applf和两个单词分别比较,发现applf和append的前3个字母相同,前缀匹配就是3;applf和apple的前4个字母相同,前缀匹配就是4;applf和application的前4个字母相同,前缀匹配也是4。于是,输出最长的前缀匹配appl。

请编程实现这个匹配功能。

输入格式

第1行:一个正整数n,代表单词库的单词总数。 第2行到第n+1行:每行一个单词,代表词库里的一个单词。 第n+2行:一个正整数k,代表用户输入的单词数。 第n+3行到第n+2+k行:每行一个单词,代表用户输入的每一个单词。

输出格式

k行:每一行代表依次对应用户输入的单词的最长前缀匹配。如果找不到任何匹配,则那一行输出"no match"。

样例

3
append
apple
application
2
applf
app
appl
app
3
append
apple
application
1
epic
no match

统计

相关

在以下作业中:

CPP备赛D6