「每日LeetCode」2022年9月27日

本文最后更新于:2023年3月19日 晚上

面试题 01.02. 判定是否互为字符重排

面试题 01.02. 判定是否互为字符重排

难度简单 116 收藏分享切换为英文接收动态反馈
输入: s1 = “abc”, s2 = “bca” 输出: true 输入: s1 = “abc”, s2 = “bad” 输出: false
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例 1:
示例 2:
说明:

  • 0 <= len(s1) <= 100
  • 0 <= len(s2) <= 100

思路

按题意模拟即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* @param {string} s1
* @param {string} s2
* @return {boolean}
*/
var CheckPermutation = function (s1, s2) {
if (s1.length !== s2.length) return false;
const map = {};

for (const char of s1) {
if (map[char]) map[char]++;
else map[char] = 1;
}
for (const char of s2) {
if (map[char] > 0) map[char]--;
if (map[char] === 0) delete map[char];
}
return Object.entries(map).length === 0;
};