Ruby mit AtCoder 7 lernen [Contest 168 Triple Dots]

Einführung

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.

Problem

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...

Antworten

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.

Längenmethode (String-Klasse)

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.

So erhalten Sie einen Teil der Zeichenfolge ① [first ... end]

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

So erhalten Sie einen Teil der Zeichenfolge ② [first, length]

Ü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.

Schließlich

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

Ruby mit AtCoder 7 lernen [Contest 168 Triple Dots]
Ruby mit AtCoder 6 lernen [Contest 168 Daher]
AtCoder Anfängerwettbewerb 169 A, B, C mit Rubin
Ruby mit AtCoder 10 lernen [1. Algorithmus Praktischer Test DoubleCamelCase Sort]
Ruby mit AtCoder lernen 13 So erstellen Sie ein zweidimensionales Array
Rubin lernen 5
Lösen mit Ruby AtCoder ACL Anfängerwettbewerb C Union Find (DSU)
Ruby lernen 3
Ruby lernen 2
Rubin lernen 6
Ruby mit AtCoder lernen 11 So erhalten Sie häufig verwendete Standardeingaben
Rubin lernen 1
Ruby-Lernen mit AtCoder 8 [1. Algorithmus-Praxistest-Doppelprüfung] Regulärer Ausdruck
Ruby mit AtCoder lernen 12 So verwenden Sie die Standardausgabe richtig (p / put / print)
AtCoder ABC127 D Hash mit Ruby 2.7.1 zu lösen
AtCoder Anfängerwettbewerb 168
Ruby mit AtCoder 9 lernen [1. Algorithmus Praktischer Test 3.] Sortieren von Array-Elementen
Ruby mit AtCoder 14 lernen [3. Algorithmus Praktischer Test Sprinkler] Hash-Erstellung, Schlüssel- / Wertschöpfung
AtCoder ABC129 D 2D-Array In Ruby und Java gelöst
AtCoder Anfängerwettbewerb 170 A, B, C bis Rubin
Ruby-Lernpunkte (grundlegend)
Erste Schritte mit Ruby
[Rails] Lernen mit Rails Tutorial
Lernen Sie Ruby mit AtCoder Anfänger Auswahl [Einige Summen] Erhöhen Sie die Methoden, die verwendet werden können
Evolve Eve mit Ruby
Lernen Sie Ruby mit AtCoder Anfänger Auswahl [Münzen] Antworten Sie mit Funktionscode
AtCoder dwango Programmierwettbewerb B zum Lösen in Ruby, Perl und Java B.
Lösen mit Ruby, Perl und Java AtCoder ABC 129 C (Teil 1)