[Algorithm] 242. Valid Anagram

Given two strings s and , write a function to determine if t is an anagram of s.

Example 1:

Input: s = "anagram", t = "nagaram"
Output: true

Example 2:

Input: s = "rat", t = "car"
Output: false

Note:
You may assume the string contains only lowercase alphabets.

Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
    
    if (s == undefined || t == undefined) {
        return false;
    }
    
    if (s.length === 0 && t.length === t) {
        return true;
    }
    
    if (s.length !== t.length) {
        return false;
    }
    
    let hashed = {}
    for (let i = 0; i < s.length; i++) {
        let char = s[i];
        if (char in hashed) {
            hashed[char]++
        } else {
            hashed[char] = 1;
        }

        let charT = t[i];
        if (charT in hashed) {
            hashed[charT]--;
        } else {
            hashed[charT] = -1;
        }
    }
    
    for (let value of Object.values(hashed)) {
        if (value !== 0) {
            return false;
        }
    }
    
    return true;
};

猜你喜欢

转载自www.cnblogs.com/Answer1215/p/12013011.html