Apprendre Ruby avec AtCoder 7 [Contest 168 Triple Dots]

introduction

Nous allons contester la «programmation de la compétition (compétition pro)» dans le cadre de l'apprentissage de Ruby. Nous sortirons ce que nous avons appris dans l'apprentissage à cette fin. Cette fois à partir de la deuxième question (Triple Dots) de "At Coder Beginners Contest 168". https://atcoder.jp/contests/abc168/tasks/abc168_b

Je présenterai ma réponse cette fois et la méthode et la notation utilisées pour la réponse.

problème

Il existe une chaîne S composée de lettres minuscules. Si la longueur de S est K ou moins, S est sorti tel quel. Si la longueur de S dépasse K, découpez uniquement le caractère K du début et ajoutez "..." à la fin pour la sortie.

Contrainte ・ K est un entier compris entre 1 et 100 ・ S est une chaîne de caractères composée de lettres minuscules ・ La longueur de S est 1 ou plus et 100 ou moins

L'entrée est donnée sous la forme suivante.

K
S

Exemple d'entrée
7
nikoandsolstice
Exemple de sortie
#Dans le cas de l'exemple ci-dessus
=> nikoand...

répondre

Le premier est le code que j'ai écrit en premier.

k = gets.to_i
s = gets.chomp
print s.length > k ? "#{s[0...k]}..." : s

C'est la première réponse au défi d'Atcoder en utilisant l'opérateur ternaire que j'ai appris dans les premiers temps. Apprendre Ruby avec AtCoder Beginners Selection [Produit] Apprendre de diverses solutions Calculez la longueur de la chaîne avec la méthode de la longueur, comparez-la à K et comparez-la à K. S'il est plus grand que K, il est généré en ajoutant "..." en utilisant le développement d'expression, et s'il est inférieur à K, il est sorti tel quel.

Ensuite, la méthode et la notation utilisées cette fois sont résumées ci-dessous.

length, méthode (classe String)

Renvoie la longueur de la chaîne.

#Exemple
print "test".length
=> 4

À propos, la méthode length de la classe Array renvoie le nombre d'éléments.

Comment obtenir une partie de la chaîne de caractères ① [first ... end]

Renvoie la plage entre la position de début (première) et la position de fin (fin) de la chaîne de caractères sous forme de chaîne de caractères. La position peut être spécifiée sous la forme "0" avant le premier caractère et "1" entre les premier et deuxième caractères.

a = "test"

#Méthode de spécification de position (image)
0 t 1 e 2 s 3 t 4

#Exemple
print a[0...3]
=> tes
#Renvoie entre 0 et 3 sous forme de chaîne dans la méthode de positionnement ci-dessus

Comment obtenir une partie de la chaîne de caractères ② [first, length]

En passant, si vous le spécifiez sous la forme [1, 3], 3 caractères seront renvoyés à partir de la position "1".

a = "test"

#Exemple
print a[1, 3]
=> est

Il est utilisé lorsque vous souhaitez spécifier la position de fin sous la forme du nombre de caractères de la position de départ au lieu de spécifier la position.

finalement

Jusqu'à présent, j'ai présenté les méthodes apprises à partir de la deuxième question (Triple Dots) de "AtCoder Beginners Contest 168".

Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.

Recommended Posts

Apprendre Ruby avec AtCoder 7 [Contest 168 Triple Dots]
Apprendre Ruby avec AtCoder 6 [Concours 168 Donc]
AtCoder Beginner Contest 169 A, B, C avec rubis
Apprendre Ruby avec AtCoder 10 [1er test pratique d'algorithme DoubleCamelCase Sort]
Apprendre Ruby avec AtCoder 13 Comment créer un tableau à deux dimensions
Ruby apprentissage 5
Résolution avec Ruby AtCoder ACL Débutant Contest C Union Find (DSU)
Ruby apprentissage 3
Ruby apprentissage 2
Ruby apprentissage 6
Apprendre Ruby avec AtCoder 11 Comment recevoir une entrée standard souvent utilisée
Ruby apprentissage 1
Apprendre Ruby avec AtCoder 8 [1er test pratique de l'algorithme double vérification] Expression régulière
Apprendre Ruby avec AtCoder 12 Comment utiliser correctement la sortie standard (p / met / print)
AtCoder ABC127 D hash à résoudre avec Ruby 2.7.1
Concours AtCoder Débutant 168
Apprendre Ruby avec AtCoder 9 [1er test pratique d'algorithme 3ème] Tri des éléments du tableau
Apprentissage de Ruby avec AtCoder 14 [3rd Algorithm Practical Test Sprinkler] Création de hachage, ajout de clé / valeur
Tableau 2D AtCoder ABC129 D résolu en Ruby et Java
AtCoder Beginner Contest 170 A, B, C jusqu'au rubis
Points d'apprentissage Ruby (basique)
Premiers pas avec Ruby
[Rails] Didacticiel Apprendre avec les rails
Apprendre Ruby avec la sélection des débutants AtCoder [Quelques sommes] Augmentez les méthodes qui peuvent être utilisées
Evolve Eve avec Ruby
Apprendre Ruby avec la sélection des débutants AtCoder [Coins] Réponse avec un code court
Concours de programmation AtCoder dwango B à résoudre en Ruby, Perl et Java
Résolution avec Ruby, Perl et Java AtCoder ABC 129 C (Partie 1)