Inverse Fizzbuzzを解いてみる

Inverse Fizzbuzzについては、ゆろよろさんのサイト参照。

def inverse_fizzbuzz(list)
  i=('  f bf  fb f  x'*2).index(list.map{|e|{'fizz'=>:f,'buzz'=>:b,'fizzbuzz'=>:x,''=>' '}[e]}.join)+1
  (i...i+list.size).to_a
end

p inverse_fizzbuzz(['fizz'])
p inverse_fizzbuzz(['buzz'])
p inverse_fizzbuzz(['fizz','','buzz'])
p inverse_fizzbuzz(['fizz','buzz'])
p inverse_fizzbuzz(['buzz','fizz'])
p inverse_fizzbuzz(['fizz','','buzz','fizz'])
p inverse_fizzbuzz(['fizz','','','fizz'])
p inverse_fizzbuzz(['fizz','','','fizz','buzz'])
p inverse_fizzbuzz(['','fizzbuzz',''])