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 ab der ersten Frage (Doppelprüfung) 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.
Erstellen Sie ein Programm, das eine dreistellige Ganzzahl empfängt, verdoppelt und ausgibt. Die Eingabezeichenfolge S kann jedoch mit niedrigeren und niedrigeren Buchstaben gemischt werden. In diesem Fall wird ein Fehler ausgegeben. Wenn S eine dreistellige Ganzzahl ist (einschließlich derjenigen, die mit '0' beginnen), geben Sie eine Ganzzahl aus, die doppelt so hoch ist, andernfalls 'Fehler'.
Zwang ・ S ist eine Zeichenkette der Länge 3 ・ Jeder Buchstabe von S ist eine Zahl oder ein niedrigeres Alphabet
Die Eingabe erfolgt in folgender Form.
S
Eingabebeispiel ①
678
Eingabebeispiel ②
4g4
Ausgabebeispiel
#Eingabebeispiel ① 678
=> 678
#Eingabebeispiel ② 4g4
=> error
Zunächst aus der Antwort, die ich eingereicht habe.
s = gets.chomp
print /^[0-9]+$/ === s ? s.to_i * 2 : "error"
Die empfangene Zeichenfolge wird unter Verwendung eines regulären Ausdrucks beurteilt, ob die Zeichenfolge jeder Ziffer 0 bis 9 ist, und sie wird bestimmt. Wenn es wahr ist, wird es in den Integer-Typ konvertiert und dann verdoppelt. Wenn es falsch ist, wird es als Fehler ausgegeben.
Hier möchte ich noch einmal bestätigen, was ein regulärer Ausdruck ist. Das Wort "regulärer Ausdruck" selbst war zunächst schwer zu verstehen, Nachdem ich diesen Artikel gelesen hatte, habe ich mich irgendwie in ihn verliebt. Was ist ein regulärer Ausdruck?
Was ist ein regulärer Ausdruck? ** "Ausdrucksmethode, die verschiedene Zeichenfolgen mit einer Zeichenfolge ausdrückt" ** Und ** "nützlich zum Suchen und Ersetzen von Zeichenketten" **.
Es mag andere geben, aber "andere" werden in Erinnerung bleiben, wenn Sie diesen "anderen" treffen.
Nachdem wir definiert haben, was ein regulärer Ausdruck ist, werfen wir einen Blick auf den diesmal verwendeten regulären Ausdruck.
/^[0-9]+$/ === s
Das Folgende bezieht sich auf die hier verwendeten regulären Ausdrücke.
=== Legt fest, ob das Zeichenfolgenmuster für reguläre Ausdrücke auf der linken Seite in der Zeichenfolge auf der rechten Seite enthalten ist. Die linke und die rechte Seite dürfen nicht vertauscht werden.
/ / //で囲むことで正規表現オブジェクトを生成することが出来ます。 Mit anderen Worten, es ist eine Erklärung, dass "was in // eingeschlossen ist, ein regulärer Ausdruck ist".
[ ] Der Teil zwischen den eckigen Klammern [] wird als Zeichenklasse bezeichnet. Eine Aufzählung von einem oder mehreren Zeichen, die mit einem Zeichen übereinstimmen (1 von 0-9 oben).
-(Bindestrich) Zeigt den Zeichenbereich an. [A-C] ist einer von A, B, C und [0-9] ist einer von 0 bis 9.
^(/^xxx/) Der Anfang der Zeile. Entspricht dem Anfang der Zeichenfolge oder der Position unmittelbar nach dem Zeilenvorschubzeichen.
+ Repräsentiert eine oder mehrere Wiederholungen.
Daher ist die Bedeutung der folgenden Beschreibung Dies bedeutet, dass "s eine Zeichenfolge ist, die aus allen Zeichen von 0 bis 9 besteht".
/^[0-9]+$/ === s
Das Obige ist eine Zusammenfassung der regulären Ausdrücke, die beim Lösen der ersten Frage (Doppelprüfung) des "1st Algorithm Practical Test" gelernt wurden. Ich denke, es ist wichtig, sich an reguläre Ausdrücke zu gewöhnen, indem man Probleme löst. In Situationen, in denen es brauchbar zu sein scheint, möchte ich es aktiv untersuchen und nutzen.
Wenn Sie Fehler haben, wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten.
Recommended Posts