解一,循环取模
- 循环取
x % 10的模k同时削去x一位低位 - 将
k与上次结果res乘以10后相加得到新的res- 如果不是最后一位,则检查溢出,当
res * 10 / 10不等于res时返回零
- 如果不是最后一位,则检查溢出,当
- 直到
k = 0时退出循环,返回res
pub fn reverse(mut x: i32) -> i32 {
let mut res = 0i32;
while x != 0 {
let k = x % 10;
res = res * 10 + k;
if (x.abs() >= 10) && (res * 10 / 10 != res) {
return 0;
}
x /= 10;
}
return res;
}时间:
为整数位数
空间: