LeetCode 884 两句话中的不常见单词

题目链接:LeetCode 884 两句话中的不常见单词

题目大意:
句子是一串由空格分隔的单词。每个单词仅由小写字母组成。
如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
给你两个句子\(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;
    }
};
posted @ 2022-02-07 13:55  ZZHHOOUU  阅读(20)  评论(0编辑  收藏  举报