Ruby erhält die diagonalen Elemente in einem 2d Array

8

Ich habe einige Probleme mit meinem 2D-Ruby-Array versucht und mein LOC reduziert sich sehr, wenn ich Array-Slicing mache. Also zum Beispiel

%Vor%

Ich möchte wissen, ob es eine Möglichkeit gibt, eine diagonale Scheibe zu bekommen? Sagen wir, ich möchte bei [0,0] beginnen und eine diagonale Scheibe von 3 haben. Dann würde ich Elemente aus [0,0], [1,1], [2,2] bekommen und ich würde ein Array erhalten wie [1,4,7] zum Beispiel oben. Gibt es einen magischen Ein-Zeilen-Ruby-Code, der das erreichen kann? 3.mal {etwas magisches Zeug?}

    
Kannan Ekanath 24.03.2010, 09:49
quelle

3 Antworten

13
%Vor%     
YOU 24.03.2010, 10:08
quelle
4

Besser könnte ein Einzeiler sein, der die Matrix-Bibliothek verwendet:

%Vor%     
zilla 14.08.2014 18:52
quelle
2

Ruby-Snippet basiert auf Holen Sie sich alle Diagonalen in einer Matrix / Liste von Listen in Python

Dies ist, um alle Diagonalen zu erhalten. Wie auch immer, die Idee besteht darin, das Array von verschiedenen Seiten aufzufüllen, so dass die Diagonalen in den Zeilen und Spalten ausgerichtet sind:

%Vor%     
Shai 21.01.2015 19:47
quelle

Tags und Links