给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars

假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。

注意:每次拼写时,chars 中的每个字母都只能用一次。

返回词汇表 words 中你掌握的所有单词的 长度之和。

示例 1:

1
2
3
4
输入:words = ["cat","bt","hat","tree"], chars = "atach"
输出:6
解释:
可以形成字符串 "cat""hat",所以答案是 3 + 3 = 6

示例 2:

1
2
3
4
输入:words = ["hello","world","leetcode"], chars = "welldonehoneyr"
输出:10
解释:
可以形成字符串 "hello""world",所以答案是 5 + 5 = 10

 

提示:

  1. 1 <= words.length <= 1000
  2. 1 <= words[i].length, chars.length <= 100
  3. 所有字符串中都仅包含小写英文字母
个人解答
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* @param {string[]} words
* @param {string} chars
* @return {number}
*/
var countCharacters = function(words, chars) {
var lens = words.map(item => item.length);
var totalLen = 0;
for (var i = 0; i < chars.length; i++) {
for (var j = 0; j < words.length; j++) {
words[j] = words[j].replace(chars[i], '');
if (words[j] === '') {
totalLen += lens[j];
lens[j] = 0;
}
}
}
return totalLen;
};
执行结果

执行用时:272 ms, 在所有 JavaScript 提交中击败了 41.18% 的用户;
内存消耗:44.2 MB, 在所有 JavaScript 提交中击败了 55.74% 的用户。