Skip to content
On this page

884. 两句话中的不常见单词

原题链接:LeetCode 884. 两句话中的不常见单词

题目描述

句子 是一串由空格分隔的单词。每个 单词* *仅由小写字母组成。

如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的* *。

给你两个 句子 s1s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。

示例 1:

**输入:**s1 = "this apple is sweet", s2 = "this apple is sour" 输出:["sweet","sour"]

示例 2:

**输入:**s1 = "apple apple", s2 = "banana" 输出:["banana"]

提示:

- `1 <= s1.length, s2.length <= 200`

- `s1` 和 `s2` 由小写英文字母和空格组成

- `s1` 和 `s2` 都不含前导或尾随空格

- `s1` 和 `s2` 中的所有单词间均由单个空格分隔

难度: Easy


题解代码

javascript
/**
 * @param {string} s1
 * @param {string} s2
 * @return {string[]}
 */
var uncommonFromSentences = function(s1, s2) {
  const hash1 = {}, hash2 = {}, res = []
  s1.split(' ').forEach(item => {
    hash1[item] = (hash1[item] || 0) + 1
  })
  s2.split(' ').forEach(item => {
    hash2[item] = (hash2[item] || 0) + 1
  })
  for(let k in hash1) {
    if (hash1[k] === 1 && !(k in hash2)) {
      res.push(k)
    }
  }
  for(let k in hash2) {
    if (hash2[k] === 1 && !(k in hash1)) {
      res.push(k)
    }
  }
  return res
};

技术文档集合