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