Day 55 of 100 Days LeetCode Challenge

LeetCode Challenge #242. Valid Anagram

Given two strings s and t, return true if t is an anagram of s, and false otherwise.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

 

Example 1:

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

Example 2:

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

 

Constraints:

  • 1 <= s.length, t.length <= 5 * 104
  • s and t consist of lowercase English letters.

 

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

Video Solution
Java Solution
				
					class Solution {
    public boolean isAnagram(String s, String t) {
        HashMap<Character , Integer> hm = new HashMap<>();

        for(int i=0;i<s.length();i++){
            char ch = s.charAt(i);
            if(hm.containsKey(ch)==true){
                hm.put(ch,hm.get(ch)+1);
            }else{
                hm.put(ch,1);
            }
        }
        
         for(int i=0;i<t.length();i++){

            char ch = t.charAt(i);

            if(hm.containsKey(ch)==true){
                if(hm.get(ch)==1){
                    hm.remove(ch);
                }else{
                    hm.put(ch,hm.get(ch)-1);
                }
            }else{
                return false ;
            }
        }

        if(hm.size()==0){
            return true;
        }else{
            return false; 
        }
    }
}
				
			

Happy Coding with edSlash