Skip to main content

有效的字母异位词

Tips

题目类型: HashMap

题目

给定两个字符串 s 和 t, 编写一个函数来判断 t 是否是 s 的字母异位词. 若 s 和 t 中每个字符出现的次数都相同, 则称 s 和 t 互为字母异位词.

示例

输入: s ="anagram", t = "nagaram"

输出: true

题解

很简单没啥说的, 两个哈希表搞下即可.

/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function (s, t) {
if (s.length !== t.length) return false

const map = new Map()

for (const item of s) {
if (map.has(item)) {
map.set(item, map.get(item) + 1)
} else {
map.set(item, 1)
}
}

for (const item of t) {
if (!map.has(item)) return false

if (map.get(item) > 1) {
map.set(item, map.get(item) - 1)
} else {
map.delete(item)
}
}

return map.size === 0
}