884. Uncommon Words from Two Sentences #
Problem #
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:
0 <= A.length <= 2000 <= B.length <= 200AandBboth contain only spaces and lowercase letters.
Problem Summary #
Given two sentences A and B. (A sentence is a string of words separated by spaces. Each word consists only of lowercase letters.)
If a word appears exactly once in one sentence and does not appear in the other sentence, then this word is uncommon. Return a list of all uncommon words. You may return the list in any order.
Solution Approach #
- Find the different words in the 2 sentences and print both of them. This is an easy problem. First split the words from both sentences and put them into a map to count word frequencies. The frequencies of the two different words must both be 1, so just output them.
Code #
package leetcode
import "strings"
func uncommonFromSentences(A string, B string) []string {
m, res := map[string]int{}, []string{}
for _, s := range []string{A, B} {
for _, word := range strings.Split(s, " ") {
m[word]++
}
}
for key := range m {
if m[key] == 1 {
res = append(res, key)
}
}
return res
}