まめ畑

ゆるゆると書いていきます

勢いでpyspa challenge 第1回やってみた


Web巡回してたら、pyspa challenge 第1回やってみた - テックノート@ama-chというエントリを発見。
勢いでRubyでやってみた。
後悔はしていないけど、2問目は最高にごり押し3問目は出来ていない・・・。

注意点としては、問題に則して解答しているのではなく、問題の雰囲気を大切にしています。


1問目
大切にした事: 文字コードを1つ後ろにずらすという事

"oxro`".split("").map{|c| (c[0]+1).chr }.join


2問目
大切にした事: ドキュメントから"pyspa"の出現位置を探って、"pyspa"を出力

class String
   def doc
      require 'open-uri'
      res = open("http://www.ruby-doc.org/core/classes/#{self.upcase}.html").read
      raise "NOT FOUND" if res =~ /<title>ERROR<\/title>/
      return res
   end
end

doc = "IO".doc
puts "pyspa".split("").collect{|c| doc[doc.index(c)].chr}.join

こちらの問題は別にIOじゃなくてもいいんですが、ruby-docを参照してきています。
riを使わなかったのは、出力が遅いからです。
例外も超簡易版ですが、問題の本質ではないのでご容赦を。


こんな感じでやってみました、もっともっとスマートに書ける気がしますが、力不足です・・・。
もっと勉強せねば。


rubyにも__doc__みたいなのあってもいいのになぁ。