LeetCode题解:242. 有效的字母异位词,数组排序,JavaScript,详细注释

162 阅读1分钟

原题链接:leetcode-cn.com/problems/su…

解题思路:

  1. 该题实际要对比的是两个字符串中的每个字母的数量是否相同。
  2. 将字符串都转换为数组,再将数组从小到大排序。
  3. 排序时可以直接使用sort方法,或者字符串使用charCodeAt或者codePointAt方法转换为Unicode码点再运算。
  4. 将排序后的数组转换成字符串对比是否相等即可。
/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
  // 将字符串切割成数组
  let sArr = s.split('')
  let tArr = t.split('')

  // 使用数组进行排序,注意字符串要使用charCodeAt或者codePointAt方法转换为Unicode码点再运算
  // 直接使用sort方法,如sArr.sort()
  sArr.sort((a, b) => a.codePointAt(0) - b.codePointAt(0))
  tArr.sort((a, b) => a.codePointAt(0) - b.codePointAt(0))

  // 将数组转换成字符串,并比较是否相等
  return sArr.join('') === tArr.join('')
};