Search code examples
javaanagram

Using ASCII to find valid Anagram


Why doesn't this solution work for finding valid anagram?

26/36 test cases get passed in 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;
    }
}

Solution

  • The sums tASCII and sASCII can be equal even if the numbers are not anagrams. Let's say that you can get the number 100 by adding 60+40, but you can also get it by adding 70+30, so i recommend to use a HashMap to note every occurence of every letter or to sort the strings as arrays of chars and then compare them.