gpt4 book ai didi

ruby - 消除列表元素的连续重复

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

消除列表元素连续重复的最佳解决方案是什么?

list = compress(['a','a','a','a','b','c','c','a','a','d','e','e','e','e']).
p list # => # ['a','b','c','a','d','e']

我有这个:

def compress(list)
list.map.with_index do |element, index|
element unless element.equal? list[index+1]
end.compact
end

ruby 1.9.2

最佳答案

使用的好机会Enumerable#chunk ,只要您的列表不包含 nil:

list.chunk(&:itself).map(&:first)

对于早于 2.2.x 的 Ruby,您可以 require "backports/2.2.0/kernel/itself"或使用 {|x| x} 而不是 (&:itself)

对于早于 1.9.2 的 Ruby,您可以 require "backports/1.9.2/enumerable/chunk"获得它的纯 Ruby 版本。

关于ruby - 消除列表元素的连续重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5544701/

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