C# の例を次に示します。空白を各項目間の 1 つのスペースに減らすと、321 バイトになります。
編集:@ Johannes Rösselのコメントに応えて、ソリューションからジェネリックを削除して、さらに数バイトを探し出しました。
編集:別の変更により、すべての一時変数が削除されました。
public static String E(String i)
{
return new Regex("HAA|AAH|HH|AA|A|H").Replace(i,
m => (String)new Hashtable {
{ "H", "AH" },
{ "A", "HA" },
{ "AA", "HA" },
{ "HH", "AH" },
{ "AAH", "HA" },
{ "HAA", "AH" }
}[m.Value]);
}
まだコンパイルされている、空白を減らして書き直されたソリューションは 158 文字です。
return new Regex("HAA|AAH|HH|AA|A|H").Replace(i,m =>(String)new Hashtable{{"H","AH"},{"A","HA"},{"AA","HA"},{"HH","AH"},{"AAH","HA"},{"HAA","AH"}}[m.Value]);
Visual Studio 2008 の完全なソース コード ソリューションについては、単体テストを含む必要なコードを含む Subversion リポジトリを以下で入手できます。
リポジトリはここにあります。ユーザー名とパスワードはどちらも引用符なしの「ゲスト」です。