A. 拼写检查 (word)

    Type: Default File IO: word 1000ms 256MiB

拼写检查 (word)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

此题请务必开O2

微软的Word有一个拼写检查功能,如果你拼写错了单词,它会用红线标出以示提醒,然后给出可能正确的单词。现在要你编程实现类似的一个系统:给定一个词表以及一个待检查的单词,判断这个单词是否在词表中,如果不在词表中,程序应该给出一个相似的单词。在寻找相似的单词时,你只需要考虑如下几个简单的情况:

  1. 漏写了一个字母,如把 "abacus" 误拼写为 "abacs"。
  2. 多写了一个字母,如把 "abacus" 误拼写为 "abaacus"。
  3. 将某处的一个字母写成了另一个字母,如 "abacus" 误拼写为 "abacup"。

编程实现这个系统。

输入格式

输入数据的第一行是一个由小写字母组成的字符串,表示要进行拼写检查的单词。

第二行是一个数 N1N1000)N(1\leq N\leq 1000),表示词表中词的数目。

接下来有 NN 行,每行都是一个由小写字母组成的字符串,代表词表中的每一个单词。

输出格式

仅输出一个字符串:

  1. 如果要检查的单词在词表中出现,则原样输出该单词。
  2. 如果要检查的单词在词表中未出现,但在词表中找到相似的单词,则输出在词表中和它相似的那个单词。如果在此表中找到多个相似单词,仅输出在输入文件中最靠前的一个。
  3. 如果要检查的单词在词表中未出现,并且在词表中找不到与它相似的单词,输出 NOANSWER
abstaine
4
abacus
abstract
abstain
abstainer
abstain

数据范围与约定

对于 40%40\% 的数据,1S1000,N1001 \leq |S| \leq 1000, N \leq 100

对于 100%100\% 的数据,1S1000,N10001 \leq |S| \leq 1000, N \leq 1000 ,其中 S|S| 为字符串长度

数据保证有解。

0812

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2025-8-12 8:30
End at
2025-8-12 11:51
Duration
3.4 hour(s)
Host
Partic.
31