相关疑难解决方法(0)

如何有效地提取Ruby数组中的重复元素?

我有一个类似[1,1,1,2,4,6,3,3]的数组,我想得到重复元素的列表,在本例中为[1,3].我写了这个:

my_array.select{|obj|my_array.count(obj)>1}.uniq
Run Code Online (Sandbox Code Playgroud)

但它的效率很低(o(n²)).你有更好的主意吗?如果可能简洁.

谢谢

ruby arrays count elements

6
推荐指数
2
解决办法
4772
查看次数

如何从 Ruby Array 中删除重复的连续元素,但不是所有重复的元素?

鉴于数组:

arr = ['a','a','b','b','b','a','c']
Run Code Online (Sandbox Code Playgroud)

Ruby 中是否有一种快速方法可以删除重复的连续元素,但并非所有重复元素(如 arr.uniq)都会删除?预期输出将是:

['a','b','a','c']
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的。可以按如下方式遍历 Array,但是在 Ruby 中执行此操作的最简洁方法是什么?

def remove_repeats arr
  new_arr       = []
  last_element  = nil
  arr.each do |x|
    if last_element != x
      new_arr << x
    end
    last_element = x
  end
  new_arr
end

arr = ['a','a','b','b','b','a','c','c']
puts remove_repeats(arr).join(',')

# => a,b,a,c
Run Code Online (Sandbox Code Playgroud)

ruby arrays

1
推荐指数
1
解决办法
236
查看次数

标签 统计

arrays ×2

ruby ×2

count ×1

elements ×1