/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class AnagramCheck_Sort{
// Early termination check, if strings are of unequal lengths,
// then they cannot be anagrams
if (s1==null || s2==null || s1.length() != s2.length() ) {
return false;
}
s1=s1.toLowerCase();s2=s2.toLowerCase();
for(int i=0, len=s1.length(); i<len; i++){
char c1 = s1.charAt(i);char c2 = s2.charAt(i);
p1 = p1 * primesMap.get(c1);p2 = p2 * primesMap.get(c2);
}
return p1.equals(p2);
}
public static void main
(String[] args
){ primesMap.put('a',2);primesMap.put('b',3);primesMap.put('c',5);primesMap.put('d',7);primesMap.put('e',11);primesMap.put('f',13);
primesMap.put('g',17);primesMap.put('h',19);primesMap.put('i',23);primesMap.put('j',29);primesMap.put('k',31);primesMap.put('l',37);
primesMap.put('m',41);primesMap.put('n',43);primesMap.put('o',47);primesMap.put('p',53);primesMap.put('q',59);primesMap.put('r',61);
primesMap.put('s',67);primesMap.put('t',71);primesMap.put('u',73);primesMap.put('v',79);primesMap.put('w',83);primesMap.put('x',89);
primesMap.put('y',97);primesMap.put('z',101);
System.
out.
println(isAnagram
("Anagram",
"nagaram")); }
private static Map
<Character, Integer
> primesMap
= new HashMap
<>(); }
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgQW5hZ3JhbUNoZWNrX1NvcnR7CglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNBbmFncmFtKFN0cmluZyBzMSwgU3RyaW5nIHMyKXsKCQkvLyBFYXJseSB0ZXJtaW5hdGlvbiBjaGVjaywgaWYgc3RyaW5ncyBhcmUgb2YgdW5lcXVhbCBsZW5ndGhzLAoJCS8vIHRoZW4gdGhleSBjYW5ub3QgYmUgYW5hZ3JhbXMKCQlpZiAoczE9PW51bGwgfHwgczI9PW51bGwgfHwgczEubGVuZ3RoKCkgIT0gczIubGVuZ3RoKCkgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJczE9czEudG9Mb3dlckNhc2UoKTtzMj1zMi50b0xvd2VyQ2FzZSgpOwoJCUludGVnZXIgcDEgPSAxOyBJbnRlZ2VyIHAyID0gMTsKCQlmb3IoaW50IGk9MCwgbGVuPXMxLmxlbmd0aCgpOyBpPGxlbjsgaSsrKXsKCQkJY2hhciBjMSA9IHMxLmNoYXJBdChpKTtjaGFyIGMyID0gczIuY2hhckF0KGkpOwoJCQlwMSA9IHAxICogcHJpbWVzTWFwLmdldChjMSk7cDIgPSBwMiAqIHByaW1lc01hcC5nZXQoYzIpOwoJCX0KCgkJcmV0dXJuIHAxLmVxdWFscyhwMik7Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKCQlwcmltZXNNYXAucHV0KCdhJywyKTtwcmltZXNNYXAucHV0KCdiJywzKTtwcmltZXNNYXAucHV0KCdjJyw1KTtwcmltZXNNYXAucHV0KCdkJyw3KTtwcmltZXNNYXAucHV0KCdlJywxMSk7cHJpbWVzTWFwLnB1dCgnZicsMTMpOwoJCXByaW1lc01hcC5wdXQoJ2cnLDE3KTtwcmltZXNNYXAucHV0KCdoJywxOSk7cHJpbWVzTWFwLnB1dCgnaScsMjMpO3ByaW1lc01hcC5wdXQoJ2onLDI5KTtwcmltZXNNYXAucHV0KCdrJywzMSk7cHJpbWVzTWFwLnB1dCgnbCcsMzcpOwoJCXByaW1lc01hcC5wdXQoJ20nLDQxKTtwcmltZXNNYXAucHV0KCduJyw0Myk7cHJpbWVzTWFwLnB1dCgnbycsNDcpO3ByaW1lc01hcC5wdXQoJ3AnLDUzKTtwcmltZXNNYXAucHV0KCdxJyw1OSk7cHJpbWVzTWFwLnB1dCgncicsNjEpOwoJCXByaW1lc01hcC5wdXQoJ3MnLDY3KTtwcmltZXNNYXAucHV0KCd0Jyw3MSk7cHJpbWVzTWFwLnB1dCgndScsNzMpO3ByaW1lc01hcC5wdXQoJ3YnLDc5KTtwcmltZXNNYXAucHV0KCd3Jyw4Myk7cHJpbWVzTWFwLnB1dCgneCcsODkpOwoJCXByaW1lc01hcC5wdXQoJ3knLDk3KTtwcmltZXNNYXAucHV0KCd6JywxMDEpOwoJCgkJU3lzdGVtLm91dC5wcmludGxuKGlzQW5hZ3JhbSgiQW5hZ3JhbSIsIm5hZ2FyYW0iKSk7Cgl9CgkKCXByaXZhdGUgc3RhdGljIE1hcDxDaGFyYWN0ZXIsIEludGVnZXI+IHByaW1lc01hcCA9IG5ldyBIYXNoTWFwPD4oKTsKfQ==