2009年9月4日金曜日

Google Code Jam 2009 A C#でといてみた

正規表現だ。けどなぜか上位者の回答を見ると
ごりごり自分でアルゴリズムを書いている。
問題をすぐ見て思いついてしまうんだろうな。

class A1
{
public static void Run()
{
List res = new List();
int line = 0;
var ss = File.ReadAllLines("b.in");
var s0 = ss[0].Split(' ');
var L = s0[0].ToInt();
var D = s0[1].ToInt();
var N = s0[2].ToInt();
List words = new List();
List patterns = new List();
line++;
for (int i = 0; i <>
{
words.Add(ss[line]);
line++;
}
for (int i = 0; i <>
{
string pattern = ss[line];
line++;

pattern = "^" + pattern.Replace('(', '[').Replace(')', ']') + "$";
int m = 0;
foreach (var word in words)
{
if (Regex.IsMatch(word, pattern))
m++;
}
res.Add("Case #{0}: {1}".FormatWith(i + 1, m));
}
File.WriteAllLines("Ans.txt", res.ToArray());
Console.Write(res.ToArray().Join(Environment.NewLine));
Console.ReadKey();
}
}


0 件のコメント: