888. 两句话中的不常见单词(JavaScript)
给定两个句子 A
和 B
。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
示例 1:
输入:A = "this apple is sweet", B = "this apple is sour"
输出:["sweet","sour"]
示例 2:
输入:A = "apple apple", B = "banana"
输出:["banana"]
思路:
很简单,首先将A和B都转换成数组,遍历A中的元素a,若a只在A中出现一次,且a不存在于B,那么就把a加入不常见单词的数组uncommon中。同样的方法遍历B中的元素b。
/**
* @param {string} A
* @param {string} B
* @return {string[]}
*/
var uncommonFromSentences = function(A, B) {
let uncommon = [];
let arrayA = A.split(' '),
arrayB = B.split(' ');
for (var a of arrayA) {
if (!arrayB.includes(a)) {
if (countA(arrayA, a) <= 1) {
uncommon.push(a);
}
}
}
for (var b of arrayB) {
if (!arrayA.includes(b)) {
if (countA(arrayB, b) <= 1) {
uncommon.push(b);
}
}
}
return uncommon;
};
/**
* @param {string[]} A
* @param {string} a
* @return {number}
* 计算数组A中元素a的个数
*/
var countA = function(A, a) {
var count = 0;
for (var i in A) {
if (A[i] === a) count++;
}
return count;
}