884. Uncommon Words from Two Sentences - Explanation
Prerequisites
Before attempting this problem, you should be comfortable with:
- Hash Maps - Using dictionaries or hash maps to count frequencies of elements
- String Manipulation - Splitting strings into words and iterating through them
1. Hash Map - I
Intuition
A word is uncommon if it appears exactly once across both sentences. We can combine both sentences and count the frequency of each word. Any word with a count of 1 is uncommon.
Algorithm
- Split both sentences into words and combine them.
- Use a hash map to count the frequency of each word.
- Iterate through the hash map and collect all words with a count of
1. - Return the list of uncommon words.
Time & Space Complexity
- Time complexity:
- Space complexity:
Where and are the lengths of the strings and , respectively.
2. Hash Map - II
Intuition
This is a more concise version of the same approach. We use built-in functions like Counter (in Python) or stream operations (in Java) to reduce boilerplate while maintaining the same logic.
Algorithm
- Combine and split both sentences into words.
- Count word frequencies using a built-in counter or grouping function.
- Filter to keep only words with count equal to
1. - Return the filtered words.
Time & Space Complexity
- Time complexity:
- Space complexity:
Where and are the lengths of the strings and , respectively.
Common Pitfalls
Misunderstanding "Uncommon" Definition
A word is uncommon if it appears exactly once across both sentences combined, not once per sentence. Some mistakenly check if a word appears in one sentence but not the other, which is incorrect. A word appearing twice in the same sentence is also not uncommon.
Incorrect String Splitting
When splitting sentences into words, be careful with edge cases like multiple spaces or empty strings. The problem guarantees single spaces between words, but forgetting to handle the concatenation properly (e.g., not adding a space between s1 and s2) can cause words at the boundary to merge incorrectly.