题目大意:
句子是一串由空格分隔的单词。每个单词仅由小写字母组成。
如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
给你两个句子\(s1\)和\(s2\),返回所有不常用单词的列表。返回列表中单词可以按任意顺序组织。
题解:
用哈希表统计出现的单词次数,在统计完成后,我们再对哈希表进行一次遍历,把所有值为\(1\)的键放入答案中。
class Solution {
public:
vector<string> uncommonFromSentences(string s1, string s2) {
unordered_map<string, int> hashTable;
stringstream s;
string word;
s << s1 << ' ' << s2;
while (s >> word) {
++hashTable[move(word)];
}
vector<string> ans;
for (auto& [word, cnt] : hashTable) {
if (cnt == 1) {
ans.push_back(word);
}
}
return ans;
}
};