Ruby Weg, Anagramme in String-Array zu gruppieren

7

Ich habe eine Funktion zur Gruppierung von Anagrammen implementiert. Kurz gesagt:

Eingabe: ['Autos', 'für', 'Kartoffeln', 'racs', 'vier', 'Narbe', 'Cremes', Schrei ']

Ausgabe: [["Autos", "racs", "Narbe"], ["vier"], ["für"], ["Kartoffeln"], ["Cremes", "Schrei"]]

Ich würde gerne wissen, ob es einen besseren Weg gibt, dies zu tun. Ich glaube wirklich, dass ich zu viele Wiederholungsaussagen verwendet habe: until , select , %Code%. Gibt es eine Möglichkeit, die delete_if und select Anweisung zu kombinieren? Das bedeutet, können ausgewählte Elemente automatisch gelöscht werden?

Code:

%Vor%

Vielen Dank im Voraus,

    
alexandrecosta 10.03.2012, 13:57
quelle

2 Antworten

34

So:

%Vor%

Ausgabe ist:

%Vor%

Wenn Sie möchten, können Sie diesen One-Liner natürlich zu einer Methode machen.

    
Boris Strandjev 10.03.2012, 14:05
quelle
0

Sie können die Funktion partition anstelle von select verwenden, die in Enumerable implementiert ist . Es teilt die Einträge innerhalb des Arrays gemäß der Entscheidungsfunktion in zwei Arrays auf.

%Vor%

(ungetestet)

    
Martin Donath 10.03.2012 14:02
quelle

Tags und Links