Problem Statement - Given a list of strings ,sort the list in such a fashion that anagrams are always adjacent to each other.
here is the code ........
here is the code ........
import java.io.*;
import java.util.*;
class sortanagram {
public static boolean anagram(String arg1, String arg2) {
int f;
int[] arr = new int[256];
if (arg1.length() == arg2.length()) {
for (int i = 0; i < arg1.length(); i++) {
f = arg1.charAt(i);
arr[f] = arr[f] + 1;
}
for (int k = 0; k < arg2.length(); k++) {
f = arg2.charAt(k);
arr[f] = arr[f] - 1;
}
for (int d = 0; d < 256; d++) {
if (arr[d] != 0) {
return false;
}
}
return true;
} else {
return false;
}
}
public static void main(String args[]) {
String[] args3 = {
"abcd",
"save",
"dcba",
"dog",
"easv",
"god",
"free"
};
String temp;
int p;
for (int i = 0; i < args3.length; i++) {
p = i;
for (int l = i + 1; l < args3.length; l++) {
if (anagram(args3[i], args3[l]) == true) {
p++;
temp = args3[l];
args3[l] = args3[p];
args3[p] = temp;
}
}
}
for (int r = 0; r < args3.length; r++)
System.out.println(args3[r]);
}
}