我的js算法爬坑之旅-有效的字母异位词

86 阅读1分钟

第四十六天:力扣第242题,有效的字母异位词

地址:leetcode-cn.com/problems/va…

思路:转成数组排序再转成字符串比较即可

var isAnagram = function(s, t) {
  return s.split('').sort().join('') === t.split('').sort().join('') ? true : false;
};

不过这样的时间和空间用的比较多

执行用时:120 ms, 在所有 JavaScript 提交中击败了43.41%的用户

内存消耗:43.9 MB, 在所有 JavaScript 提交中击败了7.90%的用户

官方给的哈希表比较不错

var isAnagram = function(s, t) {
    if (s.length !== t.length) {
        return false;
    }
    const table = new Array(26).fill(0);
    for (let i = 0; i < s.length; ++i) {
        table[s.codePointAt(i) - 'a'.codePointAt(0)]++;
    }
    for (let i = 0; i < t.length; ++i) {
        table[t.codePointAt(i) - 'a'.codePointAt(0)]--;
        if (table[t.codePointAt(i) - 'a'.codePointAt(0)] < 0) {
            return false;
        }
    }
    return true;
};