Als Teil des Ruby-Lernens werden wir den "Algorithmus-Praxistest" herausfordern. Wir werden das, was wir beim Lernen gelernt haben, zu diesem Zweck ausgeben. Diesmal aus der dritten Frage (dritte) des "1st Algorithm Practical Test". 1. Algorithmus Praktischer Test in der Vergangenheit
Ich werde meine Antwort und die Ausdrücke und Methoden vorstellen, die ich beim Antworten gelernt habe.
Es sind sechs verschiedene ganze Zahlen A, B, C, D, E, F angegeben. Erstellen Sie ein Programm, das das drittgrößte davon nachschlägt.
Zwang ≤ 1 ≤ A, B, C, D, E, F ≤ 100 ・ A, B, C, D, E, F sind alle unterschiedlich -Alle eingegebenen Werte sind ganze Zahlen.
Die Eingabe erfolgt in folgender Form.
A B C D E F
Eingabebeispiel
4 18 25 20 9 13
Ausgabebeispiel
=> 13
Zunächst aus der Antwort, die ich eingereicht habe.
ary = gets.split(" ").map(&:to_i)
r_ary = ary.sort
print r_ary[3]
Empfängt die Eingabezeichenfolge als Ganzzahl in einem Array Es sortiert nach der Sortiermethode und gibt die drittgrößte Ganzzahl aus.
Von hier aus werde ich die Sortiermethode zusammenfassen, die ich dieses Mal zum ersten Mal verwendet habe.
Sortiert den Inhalt des Arrays. Elemente werden mit dem Operator <=> verglichen, und sort erzeugt ein sortiertes Array und gibt es zurück.
Wenn Sie nach einem Array mit Zeichenfolgen sortieren, wird es in der Reihenfolge "a, b, c ..." oder "a, i, u ..." sortiert.
ary1 = [ "d", "a", "e", "c", "b" ]
p ary1.sort
#=> ["a", "b", "c", "d", "e"]
Wenn sich die Zahlen als Elemente der Zeichenfolge im Array befinden, sieht dies folgendermaßen aus:
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort
#=> ["10", "11", "7", "8", "9"]
Wenn es von Anfang an als ganzzahliges Element im Array enthalten ist, kann es so präzise wie die Antwort geschrieben werden. Wenn es sich in einem Array als Zeichenfolge befindet, verwenden Sie Block {}, um Folgendes zu tun:
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort{|a, b| a.to_i <=> b.to_i }
#=> ["7", "8", "9", "10", "11"]
Es wird jedoch mit der Methode to_i zum Vergleich im Block in eine Ganzzahl konvertiert. Beachten Sie, dass das generierte Array in eine Zeichenfolge zurückgesetzt wird.
Das gleiche kann mit der Methode sort_by gemacht werden.
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort_by{|a| a.to_i}
#=> ["7", "8", "9", "10", "11"]
Das Obige ist eine Zusammenfassung der Sorten, die beim Lösen der dritten Frage (dritte) des "1. Algorithmus-Praxistests" gelernt wurden.
Wenn Sie Fehler haben, wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten.
Recommended Posts