编程题
### 问题描述 Alice 正在开发一个文本编辑器。为了提高用户体验,她决定为其添加一个自动补全功能。当用户输入某个前缀时,编辑器应该能够推荐最多 $10$ 个以该前缀开头的单词。现在,Alice 希望你能帮她完成这个功能。 给定一个词汇表以及一些查询前缀,你的任务是对于每个查询前缀输出最多 $10$ 个以该前缀开头的单词。如果存在多个答案,请按字典序输出。一个单词可能在输入中出现多次,但在输出中每个单词只能出现一次。 ### 输入格式 第一行包含一个整数 $n$,$(1 \leq n \leq 10^5)$,表示词汇表中的单词数量。 接下来的 $n$ 行,每行包含一个由小写字母组成的单词,长度不超过 $100$。 下一行包含一个整数 $q$,$(1 \leq q \leq 10^4)$,表示查询的数量。 接下来的 $q$ 行,每行包含一个查询前缀,长度不超过 $100$。 ### 输出格式 对于每个查询,首先输出一个整数,表示该查询的匹配单词数目(如果匹配项大于 $10$ 个,则输出 $10$)。接下来,按字典序输出最多 $10$ 个匹配的单词。如果没有匹配的单词,请输出 $-1$。 ### 样例输入 ``` 5 apple appetite applicable bat batman 3 app bat cat ``` ### 样例输出 ``` 3 apple appetite applicable 2 bat batman -1 ``` ### 样例说明 对于第一个查询 `app`,有 $3$ 个匹配的单词:`apple`,`appetite` 和 `applicable`。 对于第二个查询 `bat`,有 $2$ 个匹配的单词:`bat` 和 `batman`。 对于第三个查询 `cat`,没有匹配的单词。 ### 测评数据规模 $1 \leq n,q \leq 10^3$。且词汇表和待查寻的单词长度均不超过 $100$。 所有的输入单词和查询前缀均由小写英文字母组成。
查看答案
赣ICP备20007335号-2