使用c++红黑树map实现:
Key:单词
Value:所在文档编号集合
读取每篇文档的所有单词,插入到map中,使用map[string]即可得到该字符在哪些文档中。
注意插入时要去重,一篇文章可能有多个相同单词。
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main() {
int n,m;
cin>>n;
map<string, vector<int>> mp;
for(int i=1;i<=n;++i){
int r;
string s;
cin>>r;
while(r--){
cin>>s;
if(!mp[s].empty()&&i==mp[s].back()) continue;
mp[s].push_back(i);
}
}
cin>>m;
while(m--){
string s;
cin>>s;
vector<int> v = mp[s];
for(int i=0;i<v.size();++i){
cout<<v[i];
if(i!=v.size()-1) cout<<" ";
}
cout<<"\n";
}
}

京公网安备 11010502036488号