一、给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1和str2互为变形词。请实现函数判断两个字符串是否是变形词
自己写的
public static boolean checkStr(String str1, String str2) {
boolean result = false; //false表示不是互为变形词
char[] chars1 = str1.toCharArray();
char[] chars2 = str2.toCharArray();
if (str1.length() == str2.length()) {
str1 = sort(str1);
str2 = sort(str2);
if (str1.equals(str2)) {
return true;
}
}
return result;
}
public static String sort( String str){
char [] chars = str.toCharArray();
for (int i = 0;i < chars.length; i++) {
for (int j = i + 1;j < chars.length; j++) {
if (chars[i] < chars[j]) {
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
}
}
return String.valueOf(chars);
}
书上面的参考:
//书上参考
public static boolean isDeformation(String str1,String str2){
if(!Optional.ofNullable(str1).isPresent() || !Optional.ofNullable(str2).isPresent() || str1.length() != str2.length()){
return false;
}
char[] chars1 = str1.toCharArray();
char[] chars2 = str2.toCharArray();
i