给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
说明:
你可以假设字符串只包含小写字母。
思路:
解法一:
对于s字符串中的每个字符char,若t中有char,则在t中删除char。最后若t为空,说明刚刚好。
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
if (s.length !== t.length) return false;
for (let char of s) {
if (t.indexOf(char) !== -1) {
let index = t.indexOf(char);
t = t.slice(0, index) + t.slice(index + 1);
}
}
if (t) return false;
return true;
};
解法二:
将两个字符串转换成数组,然后排序,最后在转换成字符串,比较这两个字符串是否相等即可。
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
if (s.length !== t.length) return false;
let array_s = Array.from(s).sort().join(''),
array_t = Array.from(t).sort().join('');
return array_s === array_t;
};