美文网首页
242. Valid Anagram

242. Valid Anagram

作者: jluemmmm | 来源:发表于2021-09-30 13:13 被阅读0次

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

排序

  • 时间复杂度O(nlogn),排序复杂度O(nlogn),比较复杂度O(n)
  • 空间复杂度O(n),空间复杂度取决于排序算法,对字符串转化需要额外空间。
  • Runtime: 112 ms, faster than 39.45%
  • Memory Usage: 45.4 MB, less than 5.59%
/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
  if (s.length !== t.length) {
    return false
  }
  const s1 = s.split('');
  const t1 = t.split('');
  s1.sort();
  t1.sort();
  return s1.toString() === t1.toString();
};

哈希表

  • 时间复杂度O(N),空间复杂度O(1)
  • Runtime: 80 ms, faster than 96.30%
  • Memory Usage: 39.8 MB, less than 93.73%
/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
  if (s.length !== t.length) {
    return false;
  }
  let counter = new Array(26).fill(0);
  for (let i = 0; i < s.length; i++) {
    counter[s.charCodeAt(i) - 97]++;
    counter[t.charCodeAt(i) - 97]--;
  }
  
  for (let j of counter) {
    if (j !== 0) {
      return false;
    }
  }
  return true;
};

相关文章

网友评论

      本文标题:242. Valid Anagram

      本文链接:https://www.haomeiwen.com/subject/vmkenltx.html