题目描述:
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例:
输入: s1 = "abc", s2 = "bca"
输出: true
输入: s1 = "abc", s2 = "bad"
输出: false
限制:
0 <= len(s1) <= 100
0 <= len(s2) <= 100
更多详细描述,可见官网
解题思路
方法一:将字符串转成字符数组,对两个字符数组按照一样的规则排序,则可以进行比较,如果相等,则返回true,反之false。
java代码:
public static boolean CheckPermutation(String s1, String s2) {
char[] str1 = s1.toCharArray();
char[] str2= s2.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return new String(str1).equals(new String(str2));
}
思考:效率低
方法二:互为重排的两个字符串有两个性质,(1)两个字符串拥有的字符相同;(2)两个字符串相同字符出现的个数也一样。
字符串重排判断:方法优化与代码实现

本文探讨了如何高效地判断两个字符串是否可以通过字符重新排列相互转换,介绍了排序、字符计数和哈希映射三种方法,并提供了Java代码示例。重点在于提升算法效率,适用于长度小于100的字符串比较。
最低0.47元/天 解锁文章


被折叠的 条评论
为什么被折叠?



