给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
解法:
判断溢出的话,可以先用long long存数,然后比较和INT_MAX,INT_MIN的大小判断是否溢出
class Solution {
public:
int reverse(int x) {
if(x == INT_MAX || x == INT_MIN ) return 0;
bool isneg = false;
if(x < 0) isneg = true;
string s = to_string(abs(x));
int i = 0,j = s.length()-1;
while(i < j) swap(s[i++],s[j--]);
string ts = "";
if(isneg) ts = "-" + s;
else ts = s;
long long res = stoll(ts.c_str());
if(res > INT_MAX || res < INT_MIN) return 0;
return res;
}
};