我有一项任务需要从记忆中找到类似的句子。任务读取输入文件包含:
a b c
c d e f
f h g w
.............
然后,给出一个新查询,ex
h g w
返回应该是
f h g w
是包含所有查询字的输入文件中的行。
我想知道如何有效地存储输入句子,以便它可以有效地用于查询。
答案 0 :(得分:1)
您可以将单词词典存储为字符串向量:
vector<string> dict;
因此,在您的示例中,您会将"a"
,"b"
,"c"
等放在字典中。
然后你可以将一个句子表示为整数向量,其中整数是字典中单词的索引:
vector<int> sentence;
例如,第一句话是{0, 1, 2}
。
您可以将所有句子存储在矢量中:
vector<vector<int>> sentences;
此时,检查短语是否在短语内部与子串搜索算法完全相同(前提是您还将短语查询转换为整数向量)。