Apprendre Ruby avec AtCoder 8 [1er test pratique de l'algorithme double vérification] Expression régulière

introduction

Dans le cadre de l'apprentissage Ruby, nous mettrons au défi le «test pratique d'algorithme». Nous sortirons ce que nous avons appris dans l'apprentissage à cette fin. Cette fois, à partir de la première question (double contrôle) du "1er test pratique d'algorithme". Première question du test pratique d'algorithme

Je présenterai ma réponse ainsi que les expressions et méthodes que j'ai apprises en répondant.

problème

Créez un programme qui reçoit un entier à 3 chiffres, le double et le produit. Cependant, la chaîne d'entrée S peut être mélangée avec des lettres minuscules et minuscules. Dans ce cas, une erreur est générée. Si S est un entier à 3 chiffres (y compris ceux qui commencent par «0»), sortez un entier qui est le double de ce nombre, sinon sortez «erreur».

Contrainte ・ S est une chaîne de caractères de longueur 3 ・ Chaque lettre de S est un chiffre ou un alphabet inférieur

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

S

Exemple d'entrée ①
678
Exemple d'entrée ②
4g4
Exemple de sortie
#Exemple d'entrée ① 678
=> 678
#Exemple d'entrée ② 4g4
=> error

répondre

Tout d'abord, d'après la réponse que j'ai soumise.

s = gets.chomp
print /^[0-9]+$/ === s ? s.to_i * 2 : "error"

La chaîne de caractères reçue est évaluée en utilisant une expression régulière si la chaîne de caractères de chaque chiffre est comprise entre 0 et 9, et elle est déterminée. S'il est vrai, il est converti en type Integer puis doublé, et s'il est faux, il est affiché comme erreur.

Expressions régulières

Ici, je voudrais reconfirmer ce qu'est une expression régulière. Au début, le mot "expression régulière" lui-même était difficile à comprendre, Après avoir lu cet article, j'en suis tombé amoureux. Qu'est-ce qu'une expression régulière?

Qu'est-ce qu'une expression régulière? ** "Méthode d'expression qui exprime diverses chaînes de caractères avec une chaîne de caractères" ** Et ** "utile pour rechercher et remplacer des chaînes de caractères" **.

Il peut y en avoir d'autres, mais on se souviendra de «l'autre» lorsque vous rencontrerez cet «autre».

Jugement par une expression régulière qui exprime un entier

Maintenant que nous avons défini ce qu'est une expression régulière, jetons un œil à l'expression régulière utilisée cette fois.

/^[0-9]+$/ === s

Les éléments suivants sont liés aux expressions régulières utilisées ici.

=== Détermine si le modèle de chaîne d'expression régulière sur le côté gauche est inclus dans la chaîne de caractères sur le côté droit. Le côté gauche et le côté droit ne doivent pas être interchangés.

/ / //で囲むことで正規表現オブジェクトを生成することが出来ます。 En d'autres termes, c'est une déclaration que "ce qui est inclus dans // est une expression régulière".

[ ] La partie entre les crochets [] est appelée la classe de caractères. Une énumération d'un ou plusieurs caractères correspondant à un seul caractère (1 sur 0-9 ci-dessus).

-(trait d'union) Indique la plage de caractères. Si c'est [A-C], ce sera l'un des A, B, C, et s'il est [0-9], ce sera l'un des 0 à 9.

^(/^xxx/) Le début de la ligne. Correspond au début de la chaîne ou à la position immédiatement après le caractère de saut de ligne.

+ Représente une ou plusieurs répétitions.

****(/xxx/) La fin de la ligne. Correspond à la fin de la chaîne ou juste avant le caractère de saut de ligne.

Par conséquent, la signification de la description suivante est Cela signifie que "s est une chaîne de caractères composée de tous les caractères de 0 à 9".

/^[0-9]+$/ === s

finalement

Ce qui précède est un résumé des expressions régulières apprises lors de la résolution de la première question (double vérification) du "1er test pratique de l'algorithme". Je pense qu'il est important de s'habituer aux expressions régulières en résolvant des problèmes. Dans les situations où il semble utilisable, je voudrais enquêter activement et l'utiliser.

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

Recommended Posts

Apprendre Ruby avec AtCoder 8 [1er test pratique de l'algorithme double vérification] Expression régulière
Apprendre Ruby avec AtCoder 10 [1er test pratique d'algorithme DoubleCamelCase Sort]
Apprendre Ruby avec AtCoder 9 [1er test pratique d'algorithme 3ème] Tri des éléments du tableau
Résolution avec Ruby AtCoder 1er test pratique de l'algorithme Une gestion des exceptions
Apprentissage de Ruby avec AtCoder 14 [3rd Algorithm Practical Test Sprinkler] Création de hachage, ajout de clé / valeur
Apprendre Ruby avec AtCoder 6 [Concours 168 Donc]
Apprendre Ruby avec AtCoder 7 [Contest 168 Triple Dots]
Expression régulière Ruby
Apprendre Ruby avec AtCoder 13 Comment créer un tableau à deux dimensions
Extraire une chaîne de caractères commençant par une majuscule avec une expression régulière (Ruby)
Comment vérifier les nombres entiers avec ruby
Apprendre Ruby avec AtCoder 11 Comment recevoir une entrée standard souvent utilisée