Pages

Friday 16 May 2014

CodeEval - Telephone Words - Hard

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb2 = new StringBuffer();
        String line;
        while ((line = in.readLine()) != null) {
           sb=new StringBuffer();
           str=line;
           getWords(new StringBuilder());
           sb2.append(sb);
           sb2.append('\n');
        }
        System.out.print(sb2);
    }
   
    static String str;
    static StringBuffer sb;
 static void getWords(StringBuilder word){
     int index=word.length();
     if(index==7){
         if(sb.length()!=0){
             sb.append(',');
         }
         sb.append(word);
         return;
     }
     char c=str.charAt(index);
     if(c=='0' || c=='1'){
        word.append(c);
        getWords(word);
        word.deleteCharAt(word.length()-1);
     }
     else{
         int valz=c-'0'-2;
         int counter=0;
         if(valz>5)
             counter=1;
         char ca=(char) ('a'+valz*3+counter);
         word.append(ca);
         getWords(word);
         word.deleteCharAt(word.length()-1);
         char cb=(char) ('b'+valz*3+counter);
         word.append(cb);
         getWords(word);
         word.deleteCharAt(word.length()-1);
         char cc=(char) ('c'+valz*3+counter);
         word.append(cc);
         getWords(word);
         word.deleteCharAt(word.length()-1);
         if(valz==5 || valz==7){
            char cd=(char) ('d'+valz*3+counter);
            word.append(cd);
            getWords(word);
            word.deleteCharAt(word.length()-1);
         }
     }
 }

}


No comments:

Post a Comment