4362: T1.拼写检查 (word)

内存限制:512 MB 时间限制:4.000 S
评测方式:文本比较 命题人:
提交:4 解决:1

题目描述

## T1.拼写检查 (word) ### 题目描述 **此题请务必开O2** 微软的Word有一个拼写检查功能,如果你拼写错了单词,它会用红线标出以示提醒,然后给出可能正确的单词。现在要你编程实现类似的一个系统:给定一个词表以及一个待检查的单词,判断这个单词是否在词表中,如果不在词表中,程序应该给出一个相似的单词。在寻找相似的单词时,你只需要考虑如下几个简单的情况: 1. 漏写了一个字母,如把 "abacus" 误拼写为 "abacs"。 2. 多写了一个字母,如把 "abacus" 误拼写为 "abaacus"。 3. 将某处的一个字母写成了另一个字母,如 "abacus" 误拼写为 "abacup"。 编程实现这个系统。

输入

### 输入格式 输入数据的第一行是一个由小写字母组成的字符串,表示要进行拼写检查的单词。 第二行是一个数 $N(1\leq N\leq 1000)$,表示词表中词的数目。 接下来有 $N$ 行,每行都是一个由小写字母组成的字符串,代表词表中的每一个单词。

输出

### 输出格式 仅输出一个字符串: 1. 如果要检查的单词在词表中出现,则原样输出该单词。 2. 如果要检查的单词在词表中未出现,但在词表中找到相似的单词,则输出在词表中和它相似的那个单词。如果在此表中找到多个相似单词,仅输出在输入文件中最靠前的一个。 3. 如果要检查的单词在词表中未出现,并且在词表中找不到与它相似的单词,输出 `NOANSWER`。

样例输入 复制

abstaine
4
abacus
abstract
abstain
abstainer

样例输出 复制

abstain

提示

### 样例输入 1 ``` abstaine 4 abacus abstract abstain abstainer ``` ### 样例输出 1 ``` abstain ``` ### 数据范围与约定 对于 $40\%$ 的数据,$1 \leq |S| \leq 1000, N \leq 100$ 对于 $100\%$ 的数据,$1 \leq |S| \leq 1000, N \leq 1000$ ,其中 $|S|$ 为字符串长度 数据保证有解。