添加所有相同数字但在数组中连续的程序

时间:2017-05-09 18:23:43

标签: ruby

我正在学习Ruby和新手。有人可以帮我解决这个问题: 添加所有在值中相等的数字并在数组中连续定位。例 我有一个数组= [1,2,2,2,5,2,6],我希望它返回array = [1,6,5,2,6]使用Ruby语言。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

试试这个

[1, 2, 2, 2, 5, 2, 6].chunk_while(&:equal?).flat_map(&:sum)
=> [1, 6, 5, 2, 6]

chunk_while允许您根据条件对连续元素进行分组。之后,你有n个组(n个数组,可能只有一个元素)。现在你想要map每个不同的数组(它的元素之和)。最后一个细节:flat_map,而不是map,因为我们需要一个数组,而不是一个数组数组。