Wir werden "Competition Programming (Competition Pro)" als Teil des Lernens von Ruby herausfordern. Wir werden das, was wir beim Lernen gelernt haben, zu diesem Zweck ausgeben. Diesmal aus der zweiten Frage (Triple Dots) von "At Coder Beginners Contest 168". https://atcoder.jp/contests/abc168/tasks/abc168_b
Ich werde diesmal meine Antwort und die für die Antwort verwendete Methode und Notation vorstellen.
Es gibt eine Zeichenfolge S, die aus Kleinbuchstaben besteht. Wenn die Länge von S K oder weniger ist, wird S so ausgegeben, wie es ist. Wenn die Länge von S K überschreitet, schneiden Sie nur das K-Zeichen von Anfang an aus und fügen Sie "..." am Ende hinzu, um es auszugeben.
Zwang ・ K ist eine ganze Zahl zwischen 1 und 100 ・ S ist eine Zeichenfolge aus Kleinbuchstaben ・ Die Länge von S beträgt 1 oder mehr und 100 oder weniger
Die Eingabe erfolgt in folgender Form.
K
S
Eingabebeispiel
7
nikoandsolstice
Ausgabebeispiel
#Im Fall des obigen Beispiels
=> nikoand...
Zuerst ist der Code, den ich zuerst geschrieben habe.
k = gets.to_i
s = gets.chomp
print s.length > k ? "#{s[0...k]}..." : s
Dies ist die erste Antwort auf die Herausforderung von Atcoder, den ternären Operator zu verwenden, den ich in den frühen Tagen gelernt habe. Ruby mit AtCoder lernen Anfängerauswahl [Produkt] Von verschiedenen Lösungen lernen Berechnen Sie die Länge der Zeichenfolge mit der Längenmethode, vergleichen Sie sie mit K und vergleichen Sie sie mit K. Wenn es größer als K ist, wird es durch Hinzufügen von "..." unter Verwendung der Ausdruckserweiterung ausgegeben, und wenn es kleiner als K ist, wird es so ausgegeben, wie es ist.
Die diesmal verwendete Methode und Notation sind nachstehend zusammengefasst.
Gibt die Länge der Zeichenfolge zurück.
#Beispiel
print "test".length
=> 4
Die Längenmethode der Array-Klasse gibt übrigens die Anzahl der Elemente zurück.
Gibt den Bereich zwischen der Startposition (erste) und der Endposition (Ende) der Zeichenfolge als Zeichenfolge zurück. Die Position kann in Form von "0" vor dem ersten Zeichen und "1" zwischen dem ersten und dem zweiten Zeichen angegeben werden.
a = "test"
#Positionsspezifikationsmethode (Bild)
0 t 1 e 2 s 3 t 4
#Beispiel
print a[0...3]
=> tes
#Gibt bei der obigen Positionierungsmethode zwischen 0 und 3 als Zeichenfolge zurück
Übrigens, wenn Sie es in Form von [1, 3] angeben, werden 3 Zeichen von der Position "1" zurückgegeben.
a = "test"
#Beispiel
print a[1, 3]
=> est
Es wird verwendet, wenn Sie die Endposition in Form der Anzahl der Zeichen von der Startposition angeben möchten, anstatt die Position anzugeben.
Bisher habe ich die Methoden vorgestellt, die aus der zweiten Frage (Triple Dots) des "AtCoder Beginners Contest 168" gelernt wurden.
Wenn Sie Fehler haben, wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten.
Recommended Posts