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