给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
1 2
| 输入: s = "anagram", t = "nagaram" 输出: true
|
示例 2:
1 2
| 输入: s = "rat", t = "car" 输出: false
|
代码实现
1 2 3 4 5 6 7 8
|
var isAnagram = function (s, t) { return s.split("").sort().join() === t.split("").sort().join(); };
|
代码实现2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
var isAnagram = function(s, t) { if (s.length !== t.length) { return false; } if (s === t) { return true } const table = Array(26).fill(0); const startCode = 'a'.codePointAt(0) for (let i = 0; i < s.length; ++i) { table[s.codePointAt(i) - startCode]++; } for (let i = 0; i < t.length; ++i) { table[t.codePointAt(i) - startCode]--; if (table[t.codePointAt(i) - startCode] < 0) { return false; } } return true; };
|