Keshawn_lu's Blog

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

字数统计: 210阅读时长: 1 min
2022/09/27 Share

题目简介:

给定两个字符串 s1s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

示例 1:

1
2
输入: s1 = "abc", s2 = "bca"
输出: true

示例 2:

1
2
输入: s1 = "abc", s2 = "bad"
输出: false

说明:

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

思路:

若两个字符串长度不相等,直接返回false

遍历两个字符串,只要它们的字符及每一个字符的个数是相同的即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
bool CheckPermutation(string s1, string s2) {

if(s1.size() != s2.size())
return false;

int count[26] = {0};

for(int i = 0; i < s1.size(); i++){

count[s1[i] - 'a']++;
count[s2[i] - 'a']--;
}

for(int i = 0; i < 26; i++){

if(count[i] != 0)
return false;
}

return true;
}
};
CATALOG
  1. 1. 题目简介:
  2. 2. 思路:
  3. 3. 代码如下: