加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
45_拼写单词.html 2.14 KB
一键复制 编辑 原始数据 按行查看 历史
Sakana 提交于 2022-08-10 13:07 . feat 拼写单词
<script>
// 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。
// 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。
// 注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。
// 返回词汇表 words 中你掌握的所有单词的 长度之和。
// 来源:力扣(LeetCode)
// 链接:https://leetcode.cn/problems/find-words-that-can-be-formed-by-characters
// 示例 1:
// 输入:words = ["cat","bt","hat","tree"], chars = "atach"
// 输出:6
// 解释:
// 可以形成字符串 "cat" 和 "hat",所以答案是 3 + 3 = 6。
// 示例 2:
// 输入:words = ["hello","world","leetcode"], chars = "welldonehoneyr"
// 输出:10
// 解释:
// 可以形成字符串 "hello" 和 "world",所以答案是 5 + 5 = 10。
// 来源:力扣(LeetCode)
// 链接:https://leetcode.cn/problems/find-words-that-can-be-formed-by-characters
/**
* 分析
* 收集chars
* 记录每个的字母出现的次数
* 遍历单词表
* 如果出现一次 那么进行 -- 直到小于0 就不可以
* 如果刚好匹配 记录单词的长度 累加
*/
/**
* @param {string[]} words
* @param {string} chars
* @return {number}
*/
var countCharacters = function (words, chars) {
var alphabet = {};
var res = 0;
for (const k of chars) {
if (!alphabet[k]) {
alphabet[k] = 1;
} else {
alphabet[k] = alphabet[k] + 1;
}
}
console.log(alphabet);
for (var i = 0; i < words.length; i++) {
const map = { ...alphabet };
let isComplete = true;
for (const w of words[i]) {
if (map[w] > 0) {
map[w]--;
continue;
} else {
isComplete = false;
break;
}
}
isComplete && (res += words[i].length);
}
return res;
};
console.log(countCharacters(['cat', 'bt', 'hat', 'tree'], 'atach'));
</script>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化