import java.util.*;
class Main {
public static void main(String[] args) {
System.out.println(new Main().checkAnagram("silent","listen"));
System.out.println(new Main().checkAnagram("silentt","listen"));
System.out.println(new Main().checkAnagram("silenta","listenb"));
System.out.println(new Main().checkAnagram("madam","madam"));
}
public boolean checkAnagram(String s1, String s2){
if(s1.length() != s2.length())
return false;
Map<Character, Integer> charMap1 = new Main().loadCharsToMap(s1);
Map<Character, Integer> charMap2 = new Main().loadCharsToMap(s2);
return charMap1.equals(charMap2);
}
public Map<Character, Integer> loadCharsToMap(String s){
Map<Character, Integer> charMap = new HashMap<>();
int length = s.length();
for(int i = 0; i < length; i++){
char ch = s.charAt(i);
Integer value = charMap.get(ch);
if(value == null){
charMap.put(ch,1);
}
else{
charMap.put(ch,++value);
}
}
return charMap;
}
}
//two strings given need to check if they have same characters
//loop over the map and comapre the two maps if they are equal return true else false
// just check on HashMap or TreeMap