原题链接
1160. 拼写单词
解题思路
- 用Map缓存chars中所有字母的数量
- 遍历单词的所有字母
- 如果Map中存在当前字母,就将Map缓存的字母数量减一
- 如果Map中不存在当前字母,或者字母数量为0,表示chars中的字母无法拼写单词,退出循环
- 如果能完成该单词所有字母的遍历,表示chars中的字母可以拼写单词,可以统计该单词的长度
var countCharacters = function(words, chars) {
let sum = 0
const charMap = new Map()
for (const char of chars) {
charMap.set(char, (charMap.get(char) ?? 0) + 1)
}
outer:
for (const word of words) {
const map = new Map(charMap)
for (const char of word) {
if (!map.get(char)) {
continue outer
}
map.set(char, map.get(char) - 1)
}
sum += word.length
}
return sum
};