使用 ASCII 查找有效的 Anagram
Using ASCII to find valid Anagram
为什么此解决方案无法找到有效的字谜?
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 来记录每个字母的每次出现或将字符串排序为字符数组然后比较它们。
为什么此解决方案无法找到有效的字谜?
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 来记录每个字母的每次出现或将字符串排序为字符数组然后比较它们。