Menu
Coddy logo textTech

Rückblick – Ein Element finden

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 41 von 66.

challenge icon

Aufgabe

Einfach

Sie erhalten zwei Eingaben. Die erste Eingabe ist eine Liste von Zahlen, die durch Kommas getrennt sind (z. B. 10,20,30,40), und die zweite Eingabe ist eine Zielzahl, nach der gesucht werden soll. Parsen Sie die durch Kommas getrennten Zahlen in einen Vektor und suchen Sie dann nach der Zielzahl. Verwenden Sie .iter().position(), um den Index der Zielzahl zu finden, was ein Option<usize> zurückgibt. Behandeln Sie beide Fälle mit match und geben Sie die entsprechende Nachricht aus.

Anforderungen:

  • Lesen Sie die erste Eingabe (kommagetrennte Zahlen) und entfernen Sie Leerzeichen
  • Teilen Sie die Eingabe nach Kommas auf und parsen Sie jeden Teil in i32, um einen Vektor zu erstellen
  • Lesen Sie die zweite Eingabe (Zielzahl) und entfernen Sie Leerzeichen
  • Parsen Sie die Zielzahl in i32
  • Verwenden Sie .iter().position(|&x| x == target), um nach dem Ziel im Vektor zu suchen
  • Verwenden Sie einen match-Ausdruck, um das von .position() zurückgegebene Option zu behandeln
  • Im Some(index)-Zweig geben Sie aus: Found at index [index]
  • Im None-Zweig geben Sie aus: Not found

Eingabe:

  • Erste Zeile: Kommagetrennte Zahlen (z. B. 10,20,30,40)
  • Zweite Zeile: Eine Zielzahl, nach der gesucht werden soll (z. B. 30)

Ausgabe:

  • Wenn das Ziel gefunden wird: Found at index [index]
  • Wenn das Ziel nicht gefunden wird: Not found

Probier es selbst

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Lies die durch Kommas getrennten Zahlen ein
    let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // Lies die Zielzahl ein
    let target_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // Wandle die durch Kommas getrennten Zahlen in einen Vektor um
    let numbers: Vec<i32> = numbers_input
        .split(',')
        .map(|s| s.trim().parse().unwrap())
        .collect();
    
    // Wandle die Zielzahl um
    let target: i32 = target_input.parse().unwrap();
    
    // TODO: Schreibe deinen Code unten
    // Verwende .iter().position(), um das Ziel zu finden, und match, um das Ergebnis zu verarbeiten
    
}

Alle Lektionen in Logic & Flow