gpt4 book ai didi

Ruby 将数字数组减少到开始结束范围数组

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:19 24 4
gpt4 key购买 nike

我有一个数字数组如下:

[11, 12, 13, 14, 19, 20, 21, 29, 30, 33]

我想将这个数组缩减为:

[[11,14], [19,21], [29,30], [33,33]]

识别数组中的结果数并仅推送其范围的开始和结束。

如何实现?

最佳答案

确切地解决了一些问题,以给出 ruby​​ 文档中 slice_before 方法的示例:

a = [0, 2, 3, 4, 6, 7, 9]
prev = a[0]
p a.slice_before { |e|
prev, prev2 = e, prev
prev2 + 1 != e
}.map { |es|
es.length <= 2 ? es.join(",") : "#{es.first}-#{es.last}"
}.join(",")

在您的情况下,您需要稍微调整一下:

a = [11, 12, 13, 14, 19, 20, 21, 29, 30, 33]
prev = a[0]
p a.slice_before { |e|
prev, prev2 = e, prev
prev2 + 1 != e
}.map { |es|
[es.first, es.last]
}

关于Ruby 将数字数组减少到开始结束范围数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25147944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com