1、题目:242. 有效的字母异位词 - 力扣(LeetCode) (leetcode-cn.com)
2、实现
(1)思路:
更正:数组改为字符串
(2)代码:
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
// 1.如果两个字符串长度不相同,那么直接返回false
if(s.length !== t.length) {
return false;
}
// 2.如果两个字符串长度相同,创建哈希表来保存字母情况
let map = new Map();
for(let i=0; i<s.length; i++) {
// 判断字符串s
if(map.has(s[i])) {
// 将对应值加1
map.set(s[i], map.get(s[i]) + 1);
} else {
map.set(s[i], 1);
}
// 判断字符串t
if(map.has(t[i])) {
map.set(t[i], map.get(t[i]) - 1);
} else {
map.set(t[i], -1);
}
}
// 3.遍历map,查看所有字母的数量情况
for(const value of map.values()) {
if(value !== 0) {
return false;
}
}
return true;
};
3、参考:
- js ES6 Map对象基础:Js Es6 Map对象 - 简书 (jianshu.com)
- for...of遍历Map对象:javascript语法 --- for of/for in循环与Map对象,遍历对象的方法_酷酷的涵哥的博客-CSDN博客
- 代码参考:Leetcode刷题 242 Valid Anagram_哔哩哔哩_bilibili