Ruby: Как найти и вернуть повторяющееся значение в массиве?

arr - это массив строк, например: ["привет", «мир», «стек», «переполнение», «привет», «снова»] .

Какой простой и элегантный способ проверить, есть ли в arr дубликаты, и если да , верните один из них (независимо от того, какой).

Примеры:

["A", "B", "C", "B", "A"]    # => "A" or "B"
["A", "B", "C"]              # => nil
154
задан Misha Moroshko 19 January 2012 в 06:38
поделиться

1 ответ

  1. Позволяют нам создать метод дублирования, которые берут множество элементов, как введено
  2. В теле метода, давайте создадим 2 новых объекта множества, что каждый замечен, и другой двойной
  3. , наконец позволяет, повторяют через каждый объект в данном множестве, и для каждого повторения позволяет, находят, что объект существовал в замеченном множестве.
  4. , если объект существовал в seen_array, то это рассматривают как двойной объект и выдвигает тот объект в duplication_array
  5. , если объект не - существовал в замеченном, то это рассматривают как уникальный объект и выдвигает тот объект в seen_array

, позволяют нам продемонстрировать в Кодовом Внедрении

def duplication given_array
  seen_objects = []
  duplication_objects = []

  given_array.each do |element|
    duplication_objects << element if seen_objects.include?(element)
    seen_objects << element
  end

  duplication_objects
end

Теперь метод дублирования требования и вывести результат возвращения -

dup_elements = duplication [1,2,3,4,4,5,6,6]
puts dup_elements.inspect
-1
ответ дан 23 November 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: