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 <= 200
- 0 <= B.length <= 200
- A and B both contain only spaces and lowercase letters.
Runtime: 8 ms
Memory Usage: 14.9 MB
class Solution { /** * @param String $A * @param String $B * @return String[] */ function uncommonFromSentences($A, $B) { $x = []; $y = []; foreach(explode(' ',$A) as $aa) { $this->add($x, $aa); } foreach(explode(' ',$B) as $bb) { $this->add($y, $bb); } $this->rmCommon($x, $y); $x = array_keys($x); $y = array_keys($y); return array_merge(array_diff($x,$y), array_diff($y, $x)); } function add(&$arr, $v){ if(isset($arr[$v])){ $arr[$v] ++; } else { $arr[$v] = 1; } } function rmCommon(&$a,&$b){ foreach($a as $k => $v){ if ($v > 1){ unset ($a[$k]); unset ($b[$k]); } } foreach($b as $k => $v){ if ($v > 1){ unset ($b[$k]); unset ($a[$k]); } } } }