有效的字母异位词-简单

难度:简单


题目描述:
给定两个字符串  s  和  t ,编写一个函数来判断  t  是否是  s  的字母异位词。

示例:

输入: (s = "anagram"), (t = "nagaram");
输出: true;
1
2


解题思路:
排序后比较

var isAnagram = function (s, t) {
  return s.split("").sort().join("") === t.split("").sort().join("");
};
1
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
最后更新时间: 5/7/2020, 9:39:41 PM