Ruby mit AtCoder lernen 11 So erhalten Sie häufig verwendete Standardeingaben

Einführung

Teilnahme an wettbewerbsfähiger Programmierung als Teil des Lernens von Ruby und Algorithmen. Hier werden wir das ausgeben, was wir zu diesem Zweck im Lernen gelernt haben. Dieses Mal möchte ich zusammenfassen, wie ich bisher Standardeingaben erhalten habe, um das Problem zu lösen.

Erhalte ein Element

String

Eingabebeispiel
Ruby
s = gets.chomp
# print s
# => Ruby 

Die chomp-Methode gibt eine Zeichenfolge zurück, bei der der Zeilenvorschubcode am Ende der Zeichenfolge entfernt ist. Es ist sicher, es anzuhängen, damit Sie nur die Zeichenfolge erhalten können, die Sie erhalten möchten.

ganze Zahl

Eingabebeispiel
64
s = gets.to_i
# print s
# => 64

Die von der Methode gets empfangene Standardeingabe wird als String-Typ empfangen. Konvertiert die empfangene Zeichenfolge in den Integer-Typ, indem am Ende die Methode to_i hinzugefügt wird. In diesem Fall wird die Chomp-Methode nicht benötigt.

Teilen Sie ein Element in eine beliebige Form

Je nach Problem gibt es einige Fälle, in denen Sie der Antwort durch Zerlegen der Elemente näher kommen können. Hier sind einige Beispiele.

Teilen Sie die Zeichenfolge in Zeichen und machen Sie daraus ein Array

Eingabebeispiel
Ruby
ary = gets.split("")
ary = gets.split(//) #Reguläre Ausdrücke
# print ary
# => ["R", "u", "b", "y"]

Die Split-Methode ist eine Methode, die eine Zeichenfolge in ein Array aufteilt. Sie können ein Trennzeichen als erstes Argument in () angeben. Wenn Sie jedes Zeichen teilen möchten, können Sie ("") oder (//) verwenden.

Teilen Sie die Zeichenfolge nach einer beliebigen Regel und machen Sie sie zu einem Array

Eingabebeispiel
RubyRuby
ary = gets.scan(/../) #①
ary = gets.scan("R") #②
ary = gets.scan(/Ru./) #③
# print ary
#① => ["Ru", "by", "Ru", "by"]
#② => ["R", "R"]
#③ => ["Rub", "Rub"]

Die Scanmethode stimmt wiederholt mit dem im Argument angegebenen Muster überein und gibt den übereinstimmenden Teilstring als Array zurück. Daher kann es verwendet werden, wenn Sie die Eingabe nach einer bestimmten Regel teilen und verarbeiten möchten. Es kann etwas schwierig sein, bis Sie sich daran gewöhnt haben, die Regeln mit regulären Ausdrücken auszudrücken.

Empfangen Sie mehrere Elemente aus einer Zeile

Es ist ein Muster, das mehrere Elemente gleichzeitig empfängt, die durch einen Abstand von halber Breite getrennt sind.

Als Array empfangen (Zeichenkette)

Eingabebeispiel
Ruby PHP
ary = gets.split(" ")#Der Abstand zwischen den Doppelpunkten ist ein Abstand von halber Breite
# print ary
# => ["Ruby", "PHP"]

Durch Angabe eines Raums mit halber Breite wie oben im ersten Argument der Split-Methode Sie können mehrere Elemente empfangen, die durch einen Abstand von halber Breite voneinander getrennt sind.

In Variable empfangen (Zeichenkette)

Eingabebeispiel
Ruby PHP
a,b = gets.split(" ")
# print a
# => "Ruby"
# print b
# => "PHP"

Wenn Sie nur eine begrenzte Anzahl von Elementen empfangen können, ist es möglicherweise bequemer, jedes Element in einer Variablen zu empfangen. In einem solchen Fall können Sie jede empfangen, indem Sie die Variablen wie oben beschrieben durch "," trennen.

Erhalte eine ganze Zahl

Eingabebeispiel
123 456
ary = gets.split(" ").map(&:to_i) #① In einem Array empfangen
a,b = gets.split(" ").map(&:to_i) #② Als Variable empfangen

# print ary
# => [123, 456]

# print a
# => 123
# print b
# => 456

Die Map-Methode durchläuft die Blöcke so oft, wie Elemente im Array vorhanden sind, und gibt das resultierende Array zurück. Wenn Sie auf jedes Element eine Methode anwenden möchten (diesmal möchten Sie alle Elemente in einen Ganzzahltyp konvertieren), Es kann wie oben mit & abgekürzt werden.

Empfangen Sie Elemente, die mehrere Zeilen gleichzeitig umfassen

mal Methode

In der Frage der wettbewerbsfähigen Programmierung Zuerst wird "die Anzahl der danach angegebenen Elemente" eingegeben, Es gibt viele Probleme mit dem Muster, dass die "für die Antwort notwendigen Elemente" in der nächsten Zeile angegeben werden. In diesem Fall können Sie die times-Methode verwenden, um die Elemente zusammen zu empfangen.

Eingabebeispiel
3 #Anzahl der danach angegebenen Elemente
4 8
8 2
5 2
#Beim Empfang als Integer-Typ
n = gets.to_i #Anzahl der in der ersten Zeile angegebenen Elemente
ary = n.times.map{gets.split.map(&:to_i)}
# print ary
# => [[2, 2], [8, 2], [5, 2]]

#Beim Empfang als String-Typ
n = gets.to_i
ary = n.times.map{gets.split}
# print ary
# => [["2", "2"], ["8", "2"], ["5", "2"]]

Mit einer Kombination aus Zeitmethode und Kartenmethode Die Eingaben sind als zweidimensionales Array organisiert, was für verschiedene Beurteilungen praktisch ist.

Schließlich

Auf diese Weise erhalten Sie häufig verwendete Standardeingaben. Wenn ich bei der Lösung des Problems auf andere Methoden stoße, möchte ich sie jedes Mal hinzufügen.

Wenn Sie Fehler haben, wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten.

Recommended Posts

Ruby mit AtCoder lernen 11 So erhalten Sie häufig verwendete Standardeingaben
[Ruby] Wie erhalte ich den Wert von der Standardeingabe?
Ruby mit AtCoder lernen 12 So verwenden Sie die Standardausgabe richtig (p / put / print)
Ruby mit AtCoder 6 lernen [Contest 168 Daher]
Ruby mit AtCoder 7 lernen [Contest 168 Triple Dots]
Ruby-Standardeingabe
AtCoder ABC127 D Hash mit Ruby 2.7.1 zu lösen
[Ruby] Verwendung der Standardausgabe bei der bedingten Verzweigung
[Ruby] Zusammenfassung, wie man Werte aus Standardeingaben erhält [Paiza Skill Check Measures]
[Java] Verschlüsselung mit AES-Verschlüsselung mit Standardbibliothek
So geben Sie einen Standard aus einem Array mit for Each aus
Lernen Sie Ruby mit AtCoder Anfänger Auswahl [Einige Summen] Erhöhen Sie die Methoden, die verwendet werden können
Ich bin sofort auf die Standardeingabemethode mit AtCoder gestoßen.
Umgang mit verschiedenen Versionen von rbenv und Ruby
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
Verwendung von Ruby return
[Ruby] Wie man auskommentiert
Wie man mit html.erb nummeriert (nummeriert)
So aktualisieren Sie mit activerecord-import
Ruby: Wie man Cookies benutzt
[Ruby] Wie erhalte ich den Wert von der Standardeingabe?
Ruby-Standardeingabe
Von Java zu Ruby !!
Ruby empfängt mehrzeilige Eingaben
Verwenden Sie das C-Programm von Ruby
CHATBOT (Dialogflow) von Ruby
Eingabe in die Java-Konsole
Ruby mit AtCoder lernen 11 So erhalten Sie häufig verwendete Standardeingaben
Ruby-Standardeingabe und verschiedene Methoden
[Ruby] Entkomme aus mehreren Schleifen [Nest]
Einführung in Ruby (aus anderen Sprachen)
So zeigen Sie 0 auf der linken Seite des Standardeingabewerts an
Entwerfen Sie Muster für häufig verwendete Java-Bibliotheken - Fabrikmuster
Wie fange ich mit schlank an?
Wie man in Ruby auf unbestimmte Zeit iteriert
Ruby-Standardeingabe und verschiedene Methoden
So installieren Sie Ruby über rbenv
Wie man ein Zeichen mit "~" einschließt
Verwendung von Ruby on Rails
So installieren Sie Bootstrap in Ruby
Verwendung der Ruby-Inject-Methode
Wie man Ruby's irb ausführt (interaktiver Ruby)
So starten Sie Camunda mit Docker
Ruby-Lernen mit AtCoder 8 [1. Algorithmus-Praxistest-Doppelprüfung] Regulärer Ausdruck
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
So fügen Sie die Verarbeitung mit einer beliebigen Anzahl von Elementen in die iterative Verarbeitung in Ruby ein