给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明: 你可以假设字符串只包含小写字母。
进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
先用map存储key-count,然后再遍历t看能否使得map为空
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
let obj = {}
for(let i = 0; i < s.length; i ++) {
let cur = s[i];
obj[cur] = (obj[cur] || 0) + 1
}
for(let i = 0; i < t.length; i ++) {
let cur = t[i];
if (obj[cur] === undefined) return false;
obj[cur] = obj[cur] - 1
if (obj[cur] === 0) {
delete obj[cur]
}
}
return Object.keys(obj).length === 0
};
时间复杂度
空间复杂度