Pages

Monday 17 September 2012

UVA - 156 - Ananagrams


import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;



public class Main {

    public static void main(String[] args) throws IOException {
        Scanner s=new Scanner(System.in);
        StringBuffer sb = new StringBuffer("");
        String m="";
        ArrayList<String> arr=new ArrayList<String>();
        ArrayList<int[]> arrayOfInt=new ArrayList<int[]>();
        while(s.hasNext()){
            m=s.next();
            if("#".equals(m))
                break;
            arr.add(m);
            arrayOfInt.add(chars(m));
        }
        boolean notAna[]=new boolean[arr.size()];
        for(int i=0;i<arr.size();i++){
            if(notAna[i]){
                 continue; 
                }
            for(int j=i+1;j<arr.size();j++){
                if(notAna[j]){
                    continue; 
                }
                if(check(arrayOfInt.get(i), arrayOfInt.get(j))){
                    notAna[i]=true;
                    notAna[j]=true;
                    }
                }
         }
         ArrayList<String> temp=new ArrayList<String>();
        for(int i=0;i<arr.size();i++){
            if(!notAna[i]){
                 temp.add(arr.get(i));
                }
         }
        String[] str=temp.toArray(new String[temp.size()]);
        Arrays.sort(str);
        for(int i=0;i<str.length;i++){
            sb.append(str[i]).append("\n");
        }
        System.out.print(sb);
    }
   
  
   
    static int[] chars(String x) {
     int[] temp=new int [26];
     for(int i=0;i<x.length();i++){
            if(x.charAt(i)>96 && x.charAt(i)<123)
                temp[x.charAt(i)-97]++;
            else if(x.charAt(i)>64 && x.charAt(i)<91 )
                temp[x.charAt(i)-65]++;
        }
     return temp;
 } 
   
 static boolean check(int []x,int[]y){
        for(int i=0;i<26;i++){
            if(x[i]!=y[i])
                return false;
        }
        return true;
    }
}

No comments:

Post a Comment