This is my solution

import java.io.*;

public class A {

public static void main(String[] args) throws IOException {
 BufferedReader br = new BufferedReader(new
FileReader("C:/java/A-large-practice.in"));
BufferedWriter bw = new BufferedWriter(new
FileWriter("C:/java/output.out"));
 String line = br.readLine();

int D = Integer.parseInt(line.split(" ")[1]);
 int N = Integer.parseInt(line.split(" ")[2]);

String[] words = new String[D];
 for (int i = 0; i<D; i++)
words[i]=br.readLine();

for (int i = 1; i <= N; i++) {
 line = br.readLine();
line = line.replaceAll("\\(", "[");
 line = line.replaceAll("\\)", "]");
int ans = 0;
for (String word: words)
 if (word.matches(line))
ans++;

bw.append("Case #" + i + ": " + ans + "\n");
 System.out.print("Case #" + i + ": " + ans+"\n");
}
 bw.close();
}

}

On Fri, May 6, 2011 at 12:38 PM, Jeroen van Erp <[email protected]> wrote:

> And a solution in Scala (Well nearly Java ;-))...
>
> object AlienLanguage {
>
>   def main(args: Array[String]) = {
>     if (args.length == 0) {
>       throw new IllegalArgumentException("Could not find input file in
> arguments")
>     }
>
>     val input = args(0)
>     val outputFile = new File((input substring (0, input lastIndexOf
> ("."))) + ".out")
>     val reader = Source fromFile (input) getLines
>     val ar = reader nextIntArray
>     val (tokens, nrWords, nrProblems) = (ar(0), ar(1), ar(2))
>     val results = new Array[String](nrProblems)
>
>     val words = (1 to nrWords).map(x => reader.trimmedLine).toList
>     for (val i <- 1 to nrProblems) {
>       results(i - 1) = "Case #" + i + ": " + solveProblem(reader, words)
>     }
>     outputFile write results
>   }
>
>   /**
>    * Convert the pattern received from the aliens to a regex and match it
> against the dictionary
>    */
>   def solveProblem(reader: Iterator[String], words: List[String]): String =
> {
>     val pattern = reader.trimmedLine
>     val regex = pattern.replaceAll("\\(", "[").replaceAll("\\)", "]").r
>
>     matchWords(regex, words.head, words.tail).toString
>   }
>
>   /**
>    * Recursive method to sum up all the matches
>    */
>   def matchWords(regex: scala.util.matching.Regex, word: String, words:
> List[String]): Int = {
>     words.isEmpty match {
>       case true => matchWord(regex, word)
>       case false => matchWord(regex, word) + matchWords(regex, words.head,
> words.tail)
>     }
>   }
>
>   /**
>    * Return 1 for a match, 0 for none
>    */
>   def matchWord(regex: scala.util.matching.Regex, word: String): Int = {
>     regex.findFirstIn(word) match {
>       case Some(x) => 1
>       case None => 0
>     }
>   }
> }
>
>
> On Fri, May 6, 2011 at 7:15 AM, Seydou TAPSOBA <[email protected]> wrote:
>
>> This is my Solution in Java!!
>>
>>
>> import java.io.File;
>> import java.io.FileNotFoundException;
>> import java.io.PrintWriter;
>> import java.util.ArrayList;
>> import java.util.List;
>> import java.util.Scanner;
>>
>>
>> public class alien {
>>
>>     /**
>>      * @param args
>>      * @throws FileNotFoundException
>>      */
>>     public static void main(String[] args) throws FileNotFoundException {
>>
>>         Scanner in = new Scanner(new File("aliens.in"));
>>         PrintWriter out = new PrintWriter(new File("aliens.out"));
>>
>>         String[] data = in.nextLine().split(" ");
>>
>>         int l = Integer.parseInt(data[0]);
>>         int d = Integer.parseInt(data[1]);
>>         int cas = Integer.parseInt(data[2]);
>>
>>         String rawWord;
>>         int count = 0;
>>
>>
>>         String[] dico = new String[d];
>>
>>         for (int i = 0; i < dico.length; i++) {
>>             dico[i] = in.nextLine();
>>         }
>>
>>         for (int i = 1; i <= cas; i++) {
>>
>>             rawWord = in.nextLine();
>>
>>             List<String> cases = new ArrayList<String>();
>>             String mot = "";
>>             char currentDictionnaryChar;
>>             String letters = "";
>>
>>             cases = getTokens(rawWord);
>>
>>
>>
>>
>>              // on traite chaque mot du dico pour vérifier si oui ou non
>> il peut
>>              // être construit avec la chaine reçue
>>              for (int j = 0; j < dico.length; j++) {
>>
>>                 mot = dico[j];
>>
>>                 boolean found = true;
>>
>>                     for (int k = 0; k < l; k++) {
>>
>>
>>                         currentDictionnaryChar = mot.charAt(k);
>>
>>                         letters = cases.get(k);
>>                         if(letters.indexOf(""+currentDictionnaryChar) ==
>> -1){
>>                             found = false;
>>                             break;
>>                         }
>>
>>                     }
>>                     if(found) count++;
>>             } // tous les mots du dico sont traités
>>
>>              out.print("Case #"+ i +": "+count);
>>              count = 0;
>>              if(in.hasNext()) out.println();
>>         }
>>         out.close();
>>
>>
>>     }
>>
>>    public static List<String> getTokens(String raw) {
>>
>>        List<String> temp = new ArrayList<String>();
>>        StringBuffer rawTemp = new StringBuffer(raw);
>>
>>        int i = 0, j = 0;
>>        while(rawTemp.capacity() != 0){
>>             i = rawTemp.indexOf("(") ;
>>             j = rawTemp.indexOf(")") ;
>>             switch(i) {
>>             case 0:
>>
>>                    temp.add("" + rawTemp.substring(i+1, j));
>>                    rawTemp =  rawTemp.delete(i, j+1);
>>                    break;
>>             case -1 :
>>
>>                     for (int j2 = 0; j2 < rawTemp.length(); j2++) {
>>                         temp.add("" + rawTemp.charAt(j2));
>>                     }
>>
>>                       rawTemp =  rawTemp.delete(0, rawTemp.length());
>>                       break;
>>               default :
>>
>>                       for (int j2 = 0; j2 < i; j2++) {
>>                           temp.add("" + rawTemp.charAt(j2));
>>                     }
>>                        rawTemp = rawTemp.delete(0, i);
>>                         break;
>>                }
>>
>>
>>
>>            rawTemp.trimToSize();
>>
>>         }
>>        return temp;
>>
>>    }
>>
>>
>>
>>
>>
>> }
>>
>>
>>
>>
>>
>>
>> 2011/5/6 이홍일 <[email protected]>
>>
>>> You can get source code on scoreboard.
>>> That is not difficult problem.
>>> You can get solution if you think little more.
>>>
>>> 2011/5/6 Matty <[email protected]>
>>>
>>>> Does anybody have a solution code for this problem written in Java?
>>>> I'm stuck...
>>>>
>>>> Thanks in advance,
>>>>
>>>> Matt
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "google-codejam" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/google-code?hl=en.
>>>>
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google Groups
>>> "google-codejam" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-code?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "google-codejam" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/google-code?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "google-codejam" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-code?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-codejam" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-code?hl=en.

Reply via email to