884. Uncommon Words from Two Sentences

1. Description

A sentence is a string of single-space separated words where 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.
Given two sentences s1 and s2, return a list of all the uncommon words. You may return the answer in any order.

2. Example

Example 1:
Input: s1 = “this apple is sweet”, s2 = “this apple is sour”
Output: [“sweet”,“sour”]

Example 2:
Input: s1 = “apple apple”, s2 = “banana”
Output: [“banana”]

3. Constraints

  • 1 <= s1.length, s2.length <= 200
  • s1 and s2 consist of lowercase English letters and spaces.
  • s1 and s2 do not have leading or trailing spaces.
  • All the words in s1 and s2 are separated by a single space.

4. Solutions

Hash Table

n = s1.size() + s2.size()
Time complexity: O(n)
Space complexity: O(n)

class Solution {
public:
    vector<string> uncommonFromSentences(const string &s1, const string &s2) {
        unordered_map<string, int> string_count;
        stringstream stream(s1 + " " + s2);
        for (string word; stream >> word;) {
            ++string_count[word];
        }

        vector<string> result;
        for (auto &word : string_count) {
            if (word.second == 1) {
                result.push_back(move(word.first));
            }
        }

        return result;
    }
};
comments powered by Disqus