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 sentencess1 and s2, return a list of all the uncommon words. You may return the answer in any order.
Example 1:
Input:s1 = "this apple is sweet", s2 = "this apple is sour"
Output:["sweet","sour"]
Explanation:
The word "sweet" appears only in s1, while the word "sour" appears only in s2.
Example 2:
Input:s1 = "apple apple", s2 = "banana"
Output:["banana"]
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.
Solutions
Solution 1: Hash Table
According to the problem description, as long as a word appears once, it meets the requirements of the problem. Therefore, we use a hash table cnt to record all words and their occurrence counts.
Then we traverse the hash table, and take out all strings that appear only once.
The time complexity is $O(m + n)$, and the space complexity is $O(m + n)$. Here, $m$ and $n$ are the lengths of strings s1 and s2, respectively.