Monday, January 29, 2018

[2018-Interview] Valid Anagram

Original question: https://leetcode.com/problems/valid-anagram/description/


My answer:



class Solution {
    public boolean isAnagram(String s, String t) {
        if ((s == null && t == null) || (s.length() <= 1 && s.equals(t))) {
            return true;
        }
        if (s == null || t == null || s.length() != t.length() || s.equals(t)) {
            return false;
        }
        Map<Character, Integer> charCounts = new HashMap<Character, Integer>();
        for (int i = 0; i < s.length(); i ++) {
            int count = charCounts.getOrDefault(s.charAt(i), 0);
            count ++;
            charCounts.put(s.charAt(i), count);
            count = charCounts.getOrDefault(t.charAt(i), 0);
            count --;
            charCounts.put(t.charAt(i), count);
        }
        for (Character charInSt : charCounts.keySet()) {
            if (charCounts.get(charInSt) != 0) {
                return false;
            }
        }
        return true;
    }
}

No comments:

Post a Comment