topcoder

TopCoder やってみた.

Haskell が使えなくて愕然とした.

ってのは冗談.

C++, C#, Java, VB が使えるらしい.

このなかで一番まともに使えるのは多分,Java.

ってことで,Javaでやってみたら,文法完全に忘れてて,笑えた.

簡単なコード書くのにもの凄い時間かかった.

public class TheEncryptionDivTwo {
public String encrypt(String message) {
char [] encrypt = message.toCharArray();
char [] map = new char[26];
for (int i = , c = 'a', l = message.length() ; i < l; i++) {
if (map[encrypt[i]-'a'] == ) map[encrypt[i]-'a'] = (char)c++;
encrypt[i] = map[encrypt[i]-'a'];
}
return String.valueOf(encrypt);
}
}

結論としては,Haskell使えないと(自分が)ダメ.

ちなみに,同じものをHaskellで書いてみたら,こうなった.

import Data.List (nub, lookup)
import Data.Maybe (fromJust)
encrypt :: String -> String
encrypt s = map (fromJust.(`lookup` m)) s
where m = zip (nub s) ['a'..]

やっぱり,Haskellのほうがいいな.