242. 有效的字母异位词
描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
思路
- 要判断连个字符串是否为字母异位词,只需统计两个字符串中 每个字符出现的次数时候相同即可。
- 连个长度不同的字符串一定不是字母异位词。
- 先将两个字符串构造成 HashMap ,key 为字符,value为出现次数。
- 遍历两个 HashMap 比较其相同键名对应的值时候相同;若全部相同则这两个字符串为字母异位词,反之则不是字母异位词。
代码
let isAnagram = function(s, t) {
if(s.length!==t.length){
return false
}
let _boo = true
let MapS = new Map(), MapT = new Map()
for (let i = 0; i < s.length; i++) {
if(MapS.get(s[i]) === undefined){
MapS.set(s[i],1)
}else {
MapS.set(s[i],MapS.get(s[i])+1)
}
if(MapT.get(t[i]) === undefined){
MapT.set(t[i],1)
}else {
MapT.set(t[i],MapT.get(t[i])+1)
}
}
MapS.forEach((val,key) =>{
if(MapS.get(key)!==MapT.get(key)){
_boo = false
return false
}
})
return _boo
};
总结
- 与 【205. 同构字符串】非常类似。可以做类比学习。
【205. 同构字符串 】解答:https://blog.csdn.net/weixin_38518846/article/details/108090154