[ create a new paste ] login | about

Link: http://codepad.org/Id9eu0Ax    [ raw code | output | fork ]

Ruby, pasted on May 4:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
raw_input = ["Buzz", "Fizz"]
input = raw_input[0, 7]
puts "For Input '#{raw_input.join(', ')}'"
matchMe = ["Fizz", "Buzz", "Fizz", "Fizz", "Buzz", "Fizz", "FizzBuzz","Fizz", "Buzz", "Fizz", "Fizz", "Buzz", "Fizz", "FizzBuzz"]
def real_index(index)
  real_indices = [3,5,6,9,10,12,15,18,20,21,24,25,27,30]
  multiplier = index/real_indices.size
  real_indices[index%14] + multiplier*27 #total loop is 27
end
def sub_weight(start, length)
  distances = [0,2,1,3,1,2,3,3,2,1,3,1,2,3]
  distances[start+1 ,length-1].inject(0){|sum,val| sum+val}
end
solution_start_index = (0..7).find_all{|i| input == matchMe[i, input.size]}.sort_by{|i| sub_weight(i, input.size)}[0]
puts solution_start_index == nil ? "No Solution" : "Solution: (#{real_index(solution_start_index)}, #{real_index(solution_start_index - 1 + raw_input.size)})"


Output:
1
2
For Input 'Buzz, Fizz'
Solution: (5, 6)


Create a new paste based on this one


Comments: