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;
}
}
}
```
```