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|$ 为字符串长度
数据保证有解。