有效的字母异位词-简单
难度:简单
题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例:
输入: (s = "anagram"), (t = "nagaram");
输出: true;
1
2
2
解题思路:
排序后比较
var isAnagram = function (s, t) {
return s.split("").sort().join("") === t.split("").sort().join("");
};
1
2
3
2
3
创建数据结构为 Map 的 map 对象;
遍历 s, 将各字母出现的次数叠加存储进 map 中;
遍历 t, 在 map 中减少相应字母出现的个数, 并增加 map 中未收录的字母;
如果最后 map 的 size 不为 0, 则 s 与 t 不是字母异位词; 否则是字母异位词
var isAnagram = function (s, t) {
const map = new Map();
for (let i = 0; i < s.length; i++) {
const getMap = map.get(s[i]);
if (!getMap) {
map.set(s[i], 1);
} else {
map.set(s[i], getMap + 1);
}
}
for (let i = 0; i < t.length; i++) {
const getMap = map.get(t[i]);
if (getMap === 1) {
map.delete(t[i]);
} else if (getMap) {
map.set(t[i], getMap - 1);
} else {
map.set(t[i], 1);
}
}
if (map.size) {
return false;
} else {
return true;
}
};
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
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
← 字母异位词分组-中等 错误的集合-简单 →