むかーしに見たことがあるような気がするけど、そのときは一問も解いてなかったのでやってみた。
Level 0
0秒。
インタラクティブシェルでホゲっと。
Level 1
30分。
a = '' for i in d: a += chr(ord(i) + 2)
という風に、バカチョンに2を足していったらアルファベットの範囲を越えてしまい、
a = '' for i in d: a += chr(((ord(i) + 2 -96) % 26 ) + 96)
という風に、剰余をとったら、空白と記号まで消えてしまったので、
a = '' for i in d: if 96 <= ord(i) and ord(i) <= 122: a += chr(((ord(i) + 2 -96) % 26 ) + 96) else: a += i
みたいなダサイ回答に。俺はもっとかっこいいコードが書きたいんだよ。
tt = string.maketrans(string.lowercase ,''.join([chr(i) for i in range(99, 123)])+ 'ab') src.translate(tt)
模範解答はこんなの?回答のページがPHPのエラーで見れない。
アルファべットの2個ずらした並びの素敵な出し方がわからない…。
そして、URLへの適用方法がわからず、30分くらい悩んで、答えをみちゃった。ここで終わりですね。
Level 2
30分。
はじめはこんなのでやってたけど、
rec = {} for l in fd: for i in l: rec[i] = rec[i] + 1 if rec.has_key(i) else 1
普通に辞書に入れていただけなので、結果がソートされちゃった。
なので、
rec = {} for l in fd: for i in l: rec[i] = [rec[i][0], rec[i][1] + 1] if rec.has_key(i) else [len(rec)+1, 1] for i in rec: li[rec[i][0]] = i
こんなので。なんか複雑な気がしてイヤン。
Level 3
15分。
やっぱり問題の意味というか、問題がどこにあるかでしばらく悩んだけど、forumの2つ目で問題の場所がわかった。
はじめはこんなんでやってたけど、
dst = [] for l in src: tmp = re.findall('[A-Z]{3}([a-z])[A-Z]{3}', l) if tmp: dst += tmp "".join(dst)
EXACTLY three big bodyguardじゃなかったので、
dst = [] for l in src: tmp = re.findall('[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]', l) if tmp: dst += tmp "".join(dst)
で。