题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
分析
利用 Map()方法,先统计s中出现的字母及出现的次数,再统计t的,若是字母异位词,那二者出现的字母及次数都是一样的。
代码
var isAnagram = function(s, t) {
var map = new Map()
for(let i=0;i<s.length;i++){
if(map.has(s[i])){
map.set(s[i],map.get(s[i])+1)
}else{
map.set(s[i],1)
}
}
for(let j=0;j<t.length;j++){
if(map.get(t[j])){
map.set(t[j],map.get(t[j])-1)
}else{
return false
}
}
for(let item of map.values()){
if(item !== 0) return false
}
return true
};
注意
let map = new Map()//初始化一个map
map.set('adma',65)//添加键对值
map.has('dam')//判断是否存在key值
map.get('adma')//获取value
for(let item of map.values()){}//遍历value
for(let item of map.keys()){}//遍历key
map.delete('adma')//删除key