07 valid-anagram

88 阅读1分钟

leetcode.cn/problems/va…

解题思路

  1. 转化为 {a: 4, b: 1}的map
  2. 对比键数是否相同
  3. 对比键值是否相同

代码

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function (s, t) {
    let sMap = {}
    let tMap = {}
    for (let i = 0; i < s.length; i++) {
        const key = s[i]
        if (sMap[key]) {
            sMap[key] += 1
        } else {
            sMap[key] = 1
        }
    }

    for (let i = 0; i < t.length; i++) {
        const key = t[i]
        if (tMap[key]) {
            tMap[key] += 1
        } else {
            tMap[key] = 1
        }
    }
    const sKeys = Object.keys(sMap)
    const tKeys = Object.keys(tMap)
    if (sKeys.length !== tKeys.length) {
        return false
    }
    for (let key in sMap) {
        if (sMap[key] !== tMap[key]) {
            return false
        }
    }

    return true
};