SORU
19 Ocak 2012, PERŞEMBE


Ruby: Nasıl bulacağını ve bir dizi yinelenen bir değer döndürür?

Dizeleri arr dizi, örneğin: ["hello", "world", "stack", "overflow", "hello", "again"].

Ne olursa arr çoğaltır varsa ve kontrol etmek kolay olsun şık olurdu, ve evet, bir tanesi (hangisi olursa olsun) geri dönün.

Örnekler:

["A", "B", "C", "B", "A"]    # => "A" or "B"
["A", "B", "C"]              # => nil

CEVAP
19 Ocak 2012, PERŞEMBE


İlk seçenek, en hızlı olmak birkaç şekilde yapabilirsiniz:

ary = ["A", "B", "C", "B", "A"]

ary.group_by{ |e| e }.select { |k, v| v.size > 1 }.map(&:first)

ary.sort.chunk{ |e| e }.select { |e, chunk| chunk.size > 1 }.map(&:first)

ary.select{ |e| ary.count(e) > 1 }.uniq

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • SignatureSeries

    SignatureSer

    24 Aralık 2006
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007