7. Reverse Integer
Given a 32-bit signed integer, reverse digits of an integer.
Note: Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: [−231, 231 − 1]
. For this problem, assume that your function returns 0
when the reversed integer overflows.
Example 1:
Input: x = 123 Output: 321
Example 2:
Input: x = -123 Output: -321
Example 3:
Input: x = 120 Output: 21
Example 4:
Input: x = 0 Output: 0
Constraints:
-231 <= x <= 231 - 1
Rust Solution
struct Solution;
impl Solution {
pub fn reverse(x: i32) -> i32 {
let x_str = x.abs().to_string().chars().rev().collect::<String>();
if let Ok(y) = x_str.parse::<i32>() {
x.signum() * y
} else {
0
}
}
}
#[test]
fn test() {
let x = 2_147_483_647;
let res = 0;
assert_eq!(Solution::reverse(x), res);
let x = 123_456_789;
let res = 987_654_321;
assert_eq!(Solution::reverse(x), res);
let x = -123;
let res = -321;
assert_eq!(Solution::reverse(x), res);
}
Having problems with this solution? Click here to submit an issue on github.