【发布时间】:2011-04-04 21:43:10
【问题描述】:
消除列表元素连续重复的最佳解决方案是什么?
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
【问题讨论】:
-
既然您有一个可行的答案,那么您对“最佳”的标准是什么?最快的?最短?对新用户最易读?内存最少?最棘手的?
-
请注意,这不是 "Remove from the Array Elements that are Repeated" 的副本(但在此处包含一个链接已经足够相似了)。
-
@fl00r,它是 ruby 1.9.2。 @Phrogoz,好吧,我猜是最快的。
-
@Phrogz 是的,而是这个stackoverflow.com/questions/4576652/… 的副本,而接受的答案是那个stackoverflow.com/a/8105422/227755 的副本
标签: ruby