free-programming-books
free-programming-books copied to clipboard
String-解题:有效的字母异位词(NO.242)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
- 示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
- 示例 2:
输入: s = "rat", t = "car"
输出: false
-
说明: 你可以假设字符串只包含小写字母。
-
进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
前端进阶题库
解题思路
- 首先
s、t必须是相等的, - 对
s、t进行分割,然后遍历,以s为基础, 逐个对比, - 每次遇到相同的则从
t删除, - 最后
t为0,则通过
代码
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
if(s.length != t.length){
return false;
}
let result = false;
let sArr = s.split('');
let tArr = t.split('');
sArr.map((k)=>{
let index = tArr.findIndex(u=>u==k);
if(index>=0){
tArr.splice(index,1);
}
return k;
})
return !tArr.length;
};

思路二
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
if(s.length != t.length){
return false;
}
let result = s.split('').reduce((total,cur)=>{
return total.replace(cur,"")
},t);
return !result.length;
};

自己做了后,还看了看评论区,高手不少
