تمرين إعادة البناء
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}");
}
}اكتب هنا