判断是否互为字符重排(简单)
2020年9月22日
题目来源:力扣
解题
单纯使用异或可能会出现像“aa”和“bb”这样的字符串,异或结果为0。
考虑加上ascall值计数,使得结果一定唯一。
class Solution {
public boolean CheckPermutation(String s1, String s2) {
int res1=0,res2=0,count1=0,count2=0;
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
for(int i=0;i<s1.length();i++){
res1^=ch1[i]-'a';
count1+=ch1[i]-'a';
}
for(int j=0;j<s2.length();j++){
res2^=ch2[j]-'a';
count2+=ch2[j]-'a';
}
return res1==res2 && count1==count2;
}
}