I übernehmen die Aufgabe ist es, die maximale Anzahl von aufeinanderfolgenden gleichen Elemente in einer bestimmten Anordnung zu bestimmen.
def recurring(arr)
arr.chunk(&:itself).map { |_,a| a.size }.max
end
arr = [1, 1, 1, 1, 1, 2, 3, 3, 3, 4, 4, 1, 1]
recurring arr
#=> 5
Object#itself wurde in Ruby v2.2 eingeführt.Für frühere Versionen schreiben Sie
arr.chunk { |e| e }.map { |_,a| a.size }.max
Die Schritte:
enum = arr.chunk(&:itself)
#=> #<Enumerator: #<Enumerator::Generator:0x007fbb04943088>:each>
können wir sehen, was werden Elemente dieses enumerator erzeugt werden, indem sie in ein Array konvertieren:
enum.to_a
#=> [[1, [1, 1, 1, 1, 1]], [2, [2]], [3, [3, 3, 3]], [4, [4, 4]], [1, [1, 1]]]
b = enum.map { |_,a| a.size }
#=> [5, 1, 3, 2, 2]
b.max
#=> 5
Möchten Sie die maximale Anzahl aufeinander folgender, um zu bestimmen gleiche Elemente in einem bestimmten Array? Ist dies der Fall, ist Ihr erster Satz falsch und Ihr Code ist nicht relevant und daher irreführend. Sie müssen die Frage bearbeiten, um zu klären, was Sie tun möchten. –