/* 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 Ideone
{
{
// your code goes here
friendlyWords(car);
}
private static int getHash(int[] count) {
int hash = 0;
int a = 378551;
int b = 63689;
for (int num : count) {
hash = hash * a + num;
a = a * b;
}
return hash;
}
if(input == null)
ArrayList<String> result = new ArrayList<String>();
HashMap
<Integer, ArrayList
<String
>> map
= new HashMap
<Integer, ArrayList
<String
>>();
str.toLowerCase();
str.trim();
int[] count = new int[26];
for (int i = 0; i < str.length(); i++) {
count[str.charAt(i) - 'a']++;
}
int hash = getHash(count);
if (!map.containsKey(hash)) {
map.put(hash, new ArrayList<String>());
}
map.get(hash).add(str);
}
for (ArrayList<String> tmp : map.values()) {
if (tmp.size() > 1) {
for(int i=0;i<tmp.size();i++) {
line_temp = line_temp + tmp.get(i) + " ";
}
line_temp.trim();
result.add(line_temp);
}
}
output_final= result.toArray(output_final);
if(output_final != null)
return output_final;
else
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlTdHJpbmdbXSBjYXIgPSB7ImEsYiJ9OwoJCWZyaWVuZGx5V29yZHMoY2FyKTsKCQkKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgaW50IGdldEhhc2goaW50W10gY291bnQpIHsKICAgICAgICBpbnQgaGFzaCA9IDA7CiAgICAgICAgaW50IGEgPSAzNzg1NTE7CiAgICAgICAgaW50IGIgPSA2MzY4OTsKICAgICAgICBmb3IgKGludCBudW0gOiBjb3VudCkgewogICAgICAgICAgICBoYXNoID0gaGFzaCAqIGEgKyBudW07CiAgICAgICAgICAgIGEgPSBhICogYjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhhc2g7CiAgICB9CiAgICAKICAgIHN0YXRpYyBTdHJpbmdbXSBmcmllbmRseVdvcmRzKFN0cmluZ1tdIGlucHV0KSB7CiAgICAgICAgaWYoaW5wdXQgPT0gbnVsbCkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbXXt9OwogICAgICAgIEFycmF5TGlzdDxTdHJpbmc+IHJlc3VsdCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwogICAgICAgIEhhc2hNYXA8SW50ZWdlciwgQXJyYXlMaXN0PFN0cmluZz4+IG1hcCA9IG5ldyBIYXNoTWFwPEludGVnZXIsIEFycmF5TGlzdDxTdHJpbmc+PigpOwogICAgICAgIAogICAgICAgIGZvciAoU3RyaW5nIHN0ciA6IGlucHV0KSB7CiAgICAgICAgICAgIHN0ci50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBzdHIudHJpbSgpOwogICAgICAgICAgICBpbnRbXSBjb3VudCA9IG5ldyBpbnRbMjZdOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb3VudFtzdHIuY2hhckF0KGkpIC0gJ2EnXSsrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpbnQgaGFzaCA9IGdldEhhc2goY291bnQpOwogICAgICAgICAgICBpZiAoIW1hcC5jb250YWluc0tleShoYXNoKSkgewogICAgICAgICAgICAgICAgbWFwLnB1dChoYXNoLCBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG1hcC5nZXQoaGFzaCkuYWRkKHN0cik7CiAgICAgICAgfQoKICAgICAgICBmb3IgKEFycmF5TGlzdDxTdHJpbmc+IHRtcCA6IG1hcC52YWx1ZXMoKSkgewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICh0bXAuc2l6ZSgpID4gMSkgewogICAgICAgICAgICAgICAgQ29sbGVjdGlvbnMuc29ydCh0bXApOwogICAgICAgICAgICAgICAgU3RyaW5nIGxpbmVfdGVtcCA9ICIiOwogICAgICAgICAgICAgICAgZm9yKGludCBpPTA7aTx0bXAuc2l6ZSgpO2krKykgewogICAgICAgICAgICAgICAgICAgIGxpbmVfdGVtcCA9IGxpbmVfdGVtcCArIHRtcC5nZXQoaSkgKyAiICI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsaW5lX3RlbXAudHJpbSgpOwogICAgICAgICAgICAgICAgcmVzdWx0LmFkZChsaW5lX3RlbXApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFN0cmluZ1tdIG91dHB1dF9maW5hbCA9IG5ldyBTdHJpbmdbcmVzdWx0LnNpemUoKV07CiAgICAgICAgb3V0cHV0X2ZpbmFsPSByZXN1bHQudG9BcnJheShvdXRwdXRfZmluYWwpOwogICAgICAgIEFycmF5cy5zb3J0KG91dHB1dF9maW5hbCk7CiAgICAgICAgaWYob3V0cHV0X2ZpbmFsICE9IG51bGwpCiAgICAgICAgICAgIHJldHVybiBvdXRwdXRfZmluYWw7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1tde307CiAgICB9Cn0=