为什么这个解决方案不能找到有效的变位?
26/36个测试用例在LeetCode中通过。
class Solution {
public boolean isAnagram(String s, String t) {
int sASCII = 0, tASCII = 0;
if(s.length() != t.length()) {return false;}
else{
for(int i = 0 ; i < s.length(); i++){
sASCII += (int)s.charAt(i);
tASCII += (int)t.charAt(i);
}
}
if(sASCII == tASCII){
return true;
}
return false;
}
}
tASCII和sASCII的和可以相等,即使数字不是字谜。假设你可以通过60+40得到数字100,但你也可以通过70+30得到它,所以我建议使用HashMap来记录每个字母的出现,或者将字符串排序为字符数组,然后比较它们。