題目:https://leetcode-cn.com/problems/reverse-integer/
給你一個(gè) 32 位的有符號(hào)整數(shù) x 哀墓,返回將 x 中的數(shù)字部分反轉(zhuǎn)后的結(jié)果盒使。
如果反轉(zhuǎn)后整數(shù)超過(guò) 32 位的有符號(hào)整數(shù)的范圍 [?231, 231 ? 1] ,就返回 0。
假設(shè)環(huán)境不允許存儲(chǔ) 64 位整數(shù)(有符號(hào)或無(wú)符號(hào))。
我的方法一
邊界
- 反轉(zhuǎn)后的數(shù)可能INT越界
代碼
class Solution {
public:
int reverse(int x) {
int ret = 0;
int remainder=0;
while(x){
if(ret < INT_MIN / 10 || ret > INT_MAX / 10){
return 0;
}
ret *= 10;
remainder = x%10;
if(remainder >=0){
if(ret > INT_MAX-remainder){
return 0;
}else{
ret += remainder;
}
}else{
if(ret < INT_MIN-remainder){
return 0;
}else{
ret += remainder;
}
}
x = x / 10;
}
return ret;
}
};