Pages

Tuesday 27 November 2012

UVA - 417 - Word Index

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb = new StringBuffer("");
        String m="",temp="abcdefghijklmnopqrstuvwxyz";
        HashMap<String,Integer>hm =gen(temp);
        while ((m=br.readLine())!=null) {
            m=m.trim();
            if(hm.containsKey(m)){
                sb.append(hm.get(m)).append("\n");
            }
            else{
              sb.append("0\n");
            }
        }
        System.out.print(sb);
    }
  
    static HashMap gen(String str){
        LinkedList<String> arr[]=new LinkedList[5];
        for(int i=0;i<5;i++){
            arr[i]=new LinkedList<String>();
        }
        for(int j=0;j<26;j++){
            arr[0].add(str.charAt(j)+"");
            for(int k=j+1;k<26;k++){
                arr[1].add((str.charAt(j)+"")+(str.charAt(k)+""));
                for(int l=k+1;l<26;l++){
                    arr[2].add((str.charAt(j)+"")+(str.charAt(k)+"")+(str.charAt(l)+""));
                    for(int m=l+1;m<26;m++){
                      arr[3].add((str.charAt(j)+"")+(str.charAt(k)+"")+(str.charAt(l)+"")+(str.charAt(m)+""));
                      for(int z=m+1;z<26;z++){
                         arr[4].add((str.charAt(j)+"")+(str.charAt(k)+"")+(str.charAt(l)+"")+(str.charAt(m)+"")+(str.charAt(z)+""));
                     }
                 }
               }
            }
        }
        int ind=1;
        HashMap<String,Integer> hs =new HashMap<String, Integer>();
        for(int i=0;i<5;i++){
            while(arr[i].size()>0){
                hs.put(arr[i].remove(), ind);
                ind++;
            }
        }
        return hs;
    }
}

No comments:

Post a Comment