Friendly Words:Friendly words can be defined as if a word is formed from characters of another word then those two words are friendly words.Example:listen,silent. Given an array of strings print group of friendly words in alphabetical order horizontal and vertically.

import java.util.*;
public class helloworld
{
public static void main(String []args){
String []a={“ivra”,”cheating”,”ravi”,”abc”,”cba”,”listen”,”teaching”,”dale”,”god”,”dog”,”lead”,”silent”,”deal”};
Arrays.sort(a);
String[] temp=new String[a.length];
for(int i=0;i<temp.length;i++){
temp[i]=a[i];
char[] chars = temp[i].toCharArray();
       Arrays.sort(chars);
       String sorted = new String(chars);
       temp[i]=sorted;  
}
String[] ans=new String[temp.length];
int kj=0;
Set<Integer> kh = new HashSet<>();
for(int i=0;i<temp.length;i++){
if(!kh.contains(i)){
String str=new String();
boolean matched=false;
for(int j=i+1;j<temp.length;j++){
if(temp[i].equals(temp[j])){
str=str+” “+a[j];
matched=true;
kh.add(j);
}
}
if(matched){
str=a[i]+str;
str.trim();
}
if(!str.isEmpty()&&str!=null)
ans[kj++]=str;
}
}
for(String word : ans){
if(word!=null)System.out.println(word);
}

}
}

Output:
abc cba
cheating teaching
dale deal lead
dog god
ivra ravi
listen silent