#D1161. 拼写检查

    ID: 191 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>字符串数据结构Hash基础算法模拟六级

拼写检查

题目描述

现在有一些英语单词需要做拼写检查,你的工具是一本词典。需要检查的单词,有的是词典中的单词,有的与词典中的单词相似,你的任务是发现这两种情况。单词 AA 与单词 BB 相似的情况有三种:

  1. 删除单词 AA 的一个字母后得到单词 BB
  2. 用任意一个字母替换单词 AA 的一个字母后得到单词 BB
  3. 在单词 AA 的任意位置增加一个字母后得到单词 BB

你的任务是发现词典中与给定单词相同或相似的单词。

输入格式

第一部分是词典中的单词,从第一行开始每行一个单词,以 # 结束。词典中的单词保证不重复,最多有 1000010000 个。

第二部分是需要查询的单词,每行一个,以 # 结束。最多有 5050 个需要查询的单词。 词典中的单词和需要查询的单词均由小写字母组成,最多包含 1515 个字符。

输出格式

按照输入的顺序,为每个需要检查的单词输出一行。如果需要检查的单词出现在词典中,输出 ?x is correct?x 代表需要检查的单词。如果需要检查的单词没有出现在词典中,则输出 ?x: ?x1 ?x2 ...?xn,其中 ?x 代表需要检查的单词,?x1...?xn 代表词典中与需要检查的单词相似的单词,这些单词中间以空格隔开。如果没有相似的单词,输出 ?x: 即可。

i
is
has
have
be
my
more
contest
me
too
if
award
#
me
aware
m
contest
hav
oo
or
i
fi
mre
#
me is correct
aware: award
m: i my me
contest is correct
hav: has have
oo: too
or:
i is correct
fi: i
mre: more me