RubyでSelf Describing Numbersを解く -CodeEval

String#countを使って。

各桁の数字がその桁の出現回数を表すとき、自己表現数(self describing number)という。

RubyでHappy Numbersを解く -CodeEval

再帰を使って。

各桁の二乗を足し続けて1になればHappy。

RubyでRightmost Charを解く -CodeEval

String#rindexで。

文字列中の指定文字の位置(最右)。

RubyでSet Intersectionを解く -CodeEval

Array#&で。

左右の数字列の重複。

RubyでUnique Elementsを解く -CodeEval

Array#uniqで。

重複数字を除去。

RubyでFile Sizeを解く -CodeEval

File.sizeで。

ファイルサイズ。

RubyでOdd Numbersを解く -CodeEval

Enumerable#selectで。

1から99の中の奇数。

RubyでSum of Integers from Fileを解く -CodeEval

Enumerable#injectを使って。

各行の数字の合計。

RubyでMultiplication Tablesを解く -CodeEval

printfで揃える。

九九のテーブルを作る。

RubyでFibonacci Seriesを解く -CodeEval

メモ化を使って。

n番目のフィボナッチ数。

(追記:2012-2-2) id:rochefortさんによるメモ化。

def fib(n)
  @cache ||= []
  @cache[n] ||= (n<2)? n : fib(n-2) + fib(n-1);
end

Fibonacci Series - うんたらかんたら日記 なるほどこちらのほうが見やすいです。

でこれにならって修正版。

@mem = { -2 => -1, -1 => 1 }
fib = ->n { @mem[n] ||= fib[n-1] + fib[n-2] }

RubyでSum of Digitsを解く -CodeEval

各桁の合計。

RubyでLowercaseを解く -CodeEval

String#downcaseで。

全部小文字化。

RubyでBit Positionsを解く -CodeEval

Integer#to_s(2)で。

1つ目の数字のビットにおける2つの位置の一致を見る。

RubyでMultiples of a Numberを解く -CodeEval

またまたEnumeratorを使って。

1つ目の数字より大きい2つ目の数字の最小の倍数。

RubyでReverse wordsを解く -CodeEval

ふつうにArray#reverseを使って。

単語の語順を入れ換える。



blog comments powered by Disqus
ruby_pack8

100円〜で好評発売中!
M'ELBORNE BOOKS