Skip to content

Latest commit

 

History

History
 
 

884. Uncommon Words from Two Sentences

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

We are given two sentences A and B.  (A sentence is a string of space separated words.  Each word consists only of lowercase letters.)

A word is uncommon if it appears exactly once in one of the sentences, and does not appear in the other sentence.

Return a list of all uncommon words. 

You may return the list in any order.

 

Example 1:

Input: A = "this apple is sweet", B = "this apple is sour"
Output: ["sweet","sour"]

Example 2:

Input: A = "apple apple", B = "banana"
Output: ["banana"]

 

Note:

  1. 0 <= A.length <= 200
  2. 0 <= B.length <= 200
  3. A and B both contain only spaces and lowercase letters.

Related Topics:
Hash Table

Solution 1.

// OJ: https://leetcode.com/problems/uncommon-words-from-two-sentences/
// Author: github.com/lzl124631x
// Time: O(A+B)
// Space: O(A+B)
class Solution {
private:
    unordered_map<string, int> getCounts(string s) {
        istringstream ss(s);
        string word;
        unordered_map<string, int> m;
        while (ss >> word) m[word]++;
        return m;
    }
public:
    vector<string> uncommonFromSentences(string A, string B) {
        auto m = getCounts(A), n = getCounts(B);
        vector<string> ans;
        for (auto &p : m) {
            if (p.second == 1 && n.find(p.first) == n.end()) ans.push_back(p.first);
        }
        for (auto &p : n) {
            if (p.second == 1 && m.find(p.first) == m.end()) ans.push_back(p.first);
        }
        return ans;
    }
};