leetcode_rust/
palindrome_number.rs1#![allow(dead_code)]
2
3pub fn is_palindrome(x: i32) -> bool {
4 if x < 0 || (x % 10 == 0 && x != 0) {
5 return false;
6 }
7
8 let mut x = x;
9 let mut reversed_num = 0;
10 while x > reversed_num {
12 reversed_num *= 10;
13 reversed_num += x % 10;
14 x /= 10;
15 }
16
17 if x == reversed_num || x == reversed_num / 10 {
18 true
19 } else {
20 false
21 }
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27
28 #[test]
29 fn test1() {
30 assert_eq!(is_palindrome(121), true);
31 assert_eq!(is_palindrome(0), true);
32 assert_eq!(is_palindrome(10), false);
33 assert_eq!(is_palindrome(-121), false);
34 }
35}