每日力扣-哈希-两句话中不同单词

83 阅读1分钟

给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)

如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。

返回所有不常用单词的列表。

您可以按任何顺序返回列表。

解题思路:这道题学到2点:1.stringstream的应用。2.iter的应用。stringstream用来读入一个字符串,以空格将这些字符串分解成单词。

class Solution {
public:
    vector<string> uncommonFromSentences(string A, string B) {
        unordered_map<string,int> hash;
        vector<string> ans;
        A = A + ' ' + B;
        stringstream str(A);
        string s;
        while(str >> s)
        {
            hash[s] ++;
        }
        for(auto iter : hash)
        {
            if(iter.second == 1)
            {
                ans.emplace_back(iter.first);
            }
        }
        return ans;
    }
};