我的目的是填充list
:
list = [-6, -3, -2, -1, 0, 1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15]
按照以下顺序:
正确的输出应该是:
solution(list)
# => [-6, [-3, -2, -1, 0, 1], [3, 4, 5], [7, 8, 9, 10], [12, 13], 15]
我的代码和输出如下。
def solution(list)
result = []
idx = 0
loop do
range = []
loop do
if list[idx+1] - list[idx] == 1
range << list[idx]
idx += 1
else
result << list[idx]
idx += 1
break
end
end
result << range
break if idx == list.size - 1
end
result
end
solution(list)
# => [-6, [], 1, [-3, -2, -1, 0], 5, [3, 4], 10, [7, 8, 9], 13, [12]]
代码不正确。你能告诉我我错过了什么吗?
答案 0 :(得分:2)
你错过了chunk_while
。
list.chunk_while{|a, b| a.next == b}.map{|a| a.one? ? a.first : a}
# => [-6, [-3, -2, -1, 0, 1], [3, 4, 5], [7, 8, 9, 10], [12, 13], 15]