Hello,

As I said in the previous post that I have started learning Rust and made a simple fibonacci series generator. Today I made a palindrome string checker. it’s very basic. I haven’t used Enum or Struct in the code since I don’t think it’s necessary in this simple code.

here is the code:

use std::io;

fn main() {
    let mut input = String::new();
    let stdin = io::stdin();
    stdin.read_line(&mut input).unwrap(); // we want to exit in case it couldn't read from stdin

    input = input.replace("\n", ""); // Removing newline

    let mut is_palindrome: bool = true;
    for i in 0..input.len()/2 {
        let first_char: &str = &input[i..i+1];
        let last_char: &str = &input[input.len()-i-1..input.len()-i];
        if first_char != "\n" {
            if first_char != last_char {
                is_palindrome = false;
            }
        }
    }

    println!("palindrome: {}", is_palindrome);
}
  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    16 hours ago

    Aside from the better solution with iterators that Flipper mentioned, you can also:

    • Omit the type annotation for is_palindrome - it will be inferred as bool anyway
    • break; after setting is_palindrome = false
    • Use the (0..input.len()/2).all(|i| ...) iterator method instead.
    • whoareuOP
      link
      fedilink
      arrow-up
      2
      ·
      14 hours ago

      Thank you for the suggestion, I will keep these in mind.