Problem:
Score : 200 points

Problem Statement

Find the number of palindromic numbers among the integers between A and B (inclusive).
Here, a palindromic number is a positive integer whose string representation in base 10 (without leading zeros) reads the same forward and backward.

Constraints

10000 \leq A \leq B \leq 99999

All input values are integers.

Input

Input is given from Standard Input in the following format:

A B

Output

Print the number of palindromic numbers among the integers between A and B (inclusive).

Sample Input 1

11009 11332

Sample Output 1

4

There are four integers that satisfy the conditions: 11011, 11111, 11211 and 11311.

Sample Input 2

31415 92653

Sample Output 2

612

Solution in Rust (1.15.1) (judge verdict: Accepted)

macro_rules! scan {
    ( $string:expr, $sep:expr, $( $x:ty ),+ ) => {{
        let mut iter = $string.split($sep);
        ($(iter.next().and_then(|word| word.parse::<$x>().ok()).unwrap(),)*)
    }}
}

fn is_cyclic(s: &str) -> bool {
    s.as_bytes()[0] == s.as_bytes()[4] && s.as_bytes()[1] == s.as_bytes()[3]
}

fn main() {
    let mut buf = String::new();
    std::io::stdin().read_line(&mut buf).unwrap();
    let (min, max) = scan!(buf, char::is_whitespace, i32, i32);
    println!("{}", (min..(max + 1))
             .filter(|x| is_cyclic(&x.to_string()))
             .collect::<Vec<_>>().len());
}

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    fn test_is_cyclic() {
        assert!(is_cyclic("10101"));
        assert!(is_cyclic("10001"));
        assert!(is_cyclic("51415"));
        assert!(!is_cyclic("10100"));
        assert!(!is_cyclic("11332"));
    }
}