Rust 연습 문제
Palindrome Check in Rust
Does the text read the same in both directions? Ignore spaces, punctuation and case.
배울 내용
- Filtering letters
- Lower case
- Comparing with the reverse
level
l0
e1
v2
e3
l4
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.
핵심 포인트
- Keep only letters and digits.
- Compare in lower case.
- eq compares two iterators item by item.
실행 가능한 Rust 예제
Rust
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));
}
}
"level" -> true
"A man, a plan, a canal: Panama" -> true
"Rust" -> false연습
예제를 온라인 컴파일러에서 열고 값을 바꾸거나 한 줄을 추가한 다음, 실행하기 전에 출력을 예상해 보세요. 그런 다음 일부러 코드를 망가뜨리고 컴파일러 메시지를 읽어 보세요.
이 레슨을 마쳤나요?
학습 완료로 표시하면 진행 상황을 기록할 수 있습니다.
진행 상황이 이 브라우저에 저장되어 있습니다 로그인하면 모든 기기에서 이어갈 수 있습니다.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지