leetcode 242 有效的字母异位词

题目 :给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。(字符长度相同,字母个数相同,仅顺序位置不同)

输入: s = "anagram", t = "nagaram"
输出: true
输入: s = "rat", t = "car"
输出: false

第一次:

1 var isAnagram = function(s, t) {
2     if(s.length != t.length) return false
3     let ss = Array.from(s).sort()
4     let tt = Array.from(t).sort()
5     return ss.toString() === tt.toString()
6 };

第二次:

1 var isAnagram = function(s, t) {
2     return s.length === t.length && [...s].sort().toString() === [...t].sort().toString()
3 };

第三次(看题解后):使用映射

 1 var isAnagram = function(s, t) {
 2     if(s.length != t.length) return false;
 3     let arr = new Array(26).fill(0);
 4     [...s].forEach(item => {
 5         let index = item.charCodeAt() - 97
 6         arr[index] = ++arr[index]
 7     });
 8     return [...t].every(item => {
 9         let index = item.charCodeAt() - 97
10         arr[index] = --arr[index]
11         return arr[index] >= 0
12     })
13 };

马老师看到后,给点意见哈,怎么写更优雅,哈哈

原文地址:https://www.cnblogs.com/jiaobaba/p/14636153.html