Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗Update the question所以堆栈溢出的值小于aa>。
5年前关闭。
我想用Ruby把一个有间隙的数字序列转换成一个有多个范围的数组每个范围应确定序列中的间隙假设你有阵列:
[1,2,3,5,6,8,9,10,11,12]
预期结果为:[1-3,5-6,8-12]
我还没有想出解决这个问题的好办法我怎样才能解决这个问题呢?

最佳答案

我将使用Enumerable#slice_before执行以下操作:

a = [1,2,3,5,6,8,9,10,11,12]
prev = a[0]
p a.slice_before { |e|
  prev, prev2 = e, prev
  prev2 + 1 != e
}.map{|b,*,c| c ? (b..c) : b }
# >> [1..3, 5..6, 8..12]

关于ruby - 将数字数组转换为范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20847212/

10-13 01:25