読者です 読者をやめる 読者になる 読者になる

Re:Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編)

ruby

Rubyで書いた。10分かからないくらい。

以下、コードを書く上での覚え書き。

  • 単にアルファベットから1..26までの数値へ関連づける写像があればよさそう (#1)
  • Rangeオブジェクトだと無駄がなさそうだけど、Arrayみたいにindexを得るメソッドあったっけ -> Enumerable#find_indexがあった (#2)
  • alpha_to_numの返り値に (基数 * 26) をかけてあげればよさそう (#3)
  • 基数は入力文字列のインデックスをそれと見なせばよさそう (#4)
  • 入力文字列を文字ごとに分割したEnumeratorをつくればよさそう (#5)
  • あとは畳み込みで和を得たら解になりそう (#6)

こんなことを考えながら書いた気がします。

1位の人はハッシュを書いていてなにも感じなかったのでしょうか。あるいはコンテストの重圧がそれを忘れさせてくれたのでしょうか。僕はあんなハッシュを書いているうちに気が狂ってしまいそうだとおもいました。

ロジックとしては3位の人と似たようなかんじだとおもいます。foreach文を使っていて好感が持てます。一番仲良くできそうなタイプだとおもいました。