Récapitulatif - Trouver un élément
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 41 sur 66.
Défi
FacileVous recevrez deux entrées. La première entrée est une liste de nombres séparés par des virgules (par exemple, 10,20,30,40), et la deuxième entrée est un nombre cible à rechercher. Analysez les nombres séparés par des virgules dans un vecteur, puis recherchez le nombre cible. Utilisez .iter().position() pour trouver l'index du nombre cible, ce qui renvoie un Option<usize>. Gérez les deux cas en utilisant match et affichez le message approprié.
Exigences :
- Lire la première entrée (nombres séparés par des virgules) et supprimer les espaces blancs
- Diviser l'entrée par des virgules et analyser chaque partie en
i32pour créer un vecteur - Lire la deuxième entrée (nombre cible) et supprimer les espaces blancs
- Analyser le nombre cible en
i32 - Utiliser
.iter().position(|&x| x == target)pour rechercher la cible dans le vecteur - Utiliser une expression
matchpour gérer l'Optionrenvoyée par.position() - Dans la branche
Some(index), afficher :Found at index [index] - Dans la branche
None, afficher :Not found
Entrée :
- Première ligne : Nombres séparés par des virgules (par exemple,
10,20,30,40) - Deuxième ligne : Un nombre cible à rechercher (par exemple,
30)
Sortie :
- Si la cible est trouvée :
Found at index [index] - Si la cible n'est pas trouvée :
Not found
Essayez vous-même
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Lire les nombres séparés par des virgules
let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
// Lire le nombre cible
let target_input = lines.next().unwrap().unwrap().trim().to_string();
// Analyser les nombres séparés par des virgules dans un vecteur
let numbers: Vec<i32> = numbers_input
.split(',')
.map(|s| s.trim().parse().unwrap())
.collect();
// Analyser le nombre cible
let target: i32 = target_input.parse().unwrap();
// TODO : Écrivez votre code ci-dessous
// Utilisez .iter().position() pour trouver la cible et match pour gérer le résultat
}Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final6Gérer l'absence avec 'Option'
Qu'est-ce qu'une 'Option' ?Utiliser 'match' avec 'Option'is_some() et is_none()Déballer une 'Option'La méthode expectFournir une valeur par défaut : unwrap_orRécapitulatif - Trouver un élément