Rust-Übungen

Palindrome Check in Rust

Does the text read the same in both directions? Ignore spaces, punctuation and case.

  • Einsteiger
  • 2 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • Filtering letters
  • Lower case
  • Comparing with the reverse
level
l0
e1
v2
e3
l4
The first and last letters match, then the next pair.

The same forwards and backwards

A palindrome reads the same in both directions, such as level. A good check ignores spaces, punctuation and the difference between upper and lower case.

filter keeps only letters and digits and map makes them lower case. eq compares the letters with the same letters in reverse order, without building a second vector. {text:?} prints the text with quotes.

Das Wichtigste

  1. Keep only letters and digits.
  2. Compare in lower case.
  3. eq compares two iterators item by item.

Ausführbares Rust-Beispiel

Rust
Code ausführen →
main.rs
fn is_palindrome(text: &str) -> bool {
    let letters: Vec<char> = text
        .chars()
        .filter(|c| c.is_alphanumeric())
        .map(|c| c.to_ascii_lowercase())
        .collect();
    letters.iter().eq(letters.iter().rev())
}

fn main() {
    for text in ["level", "A man, a plan, a canal: Panama", "Rust"] {
        println!("{text:?} -> {}", is_palindrome(text));
    }
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
"level" -> true
"A man, a plan, a canal: Panama" -> true
"Rust" -> false

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Weiter: Word Frequency Counter →

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges