目录链接:
力扣编程题-解法汇总_分享+记录-CSDN博客
GitHub同步刷题项目:
https://github.com/September26/java-algorithms
原题链接:力扣
描述:
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例 1:
输入: s1 = "abc", s2 = "bca"
输出: true
示例 2:
输入: s1 = "abc", s2 = "bad"
输出: false
说明:
0 <= len(s1) <= 100
0 <= len(s2) <= 100
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/check-permutation-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
* 解题思路: * 对s1构建一个数组,每个字符按照其assic决定位置,每个位置存放其出现的数量。 * 然后对s2遍历,每个字符的位置-1。 * 最后遍历ints,都为0则返回true,否则返回false。
代码:
public class MianShi0102 {
public boolean CheckPermutation(String s1, String s2) {
int[] ints = new int[26];
char[] chars = s1.toCharArray();
char[] char2 = s2.toCharArray();
for (char c : chars) {
ints[c - 'a']++;
}
for (char c : char2) {
ints[c - 'a']--;
}
for (int i : ints) {
if (i != 0) {
return false;
}
}
return true;
}
}