AzLearn

تمرين إعادة البناء

Palindrome Checker

أعد كتابة أداة تتحقق هل النص يقرأ بالطريقة نفسها عكسياً.

rust ~10 دقيقة مبتدئ
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
use std::env;

fn main() {
    let text = env::args().skip(1).collect::<Vec<String>>().join(" ");

    if text.is_empty() {
        println!("Usage: palindrome <text>");
        return;
    }

    // نظّف النص — Clean the text
    let cleaned: String = text
        .chars()
        .filter(|character| character.is_alphanumeric())
        .flat_map(|character| character.to_lowercase())
        .collect();

    let reversed: String = cleaned.chars().rev().collect();

    if cleaned == reversed {
        println!("Palindrome: {text}");
    } else {
        println!("Not a palindrome: {text}");
    }
}
اكتب هنا