LeetCode7. 整數(shù)反轉(zhuǎn)
給出一個(gè) 32 位的有符號(hào)整數(shù),你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。鏈接https://leetcode-cn.com/problems/reverse-integer/
題解,直接反轉(zhuǎn),然后反轉(zhuǎn)數(shù)用long long 型存著,主要對(duì)溢出數(shù)據(jù)進(jìn)行處理。
//INT_MAX與INT_MIN在<climit>頭文件中定義,分別是int型數(shù)據(jù)的最大值與最小值。
class Solution {
public:
int reverse(int s) {
int flag = 0;
long long temp=s;
int i = 10;//10的倍數(shù);
long long s1 = 0;//轉(zhuǎn)換后的數(shù);防止溢出。
while (temp) {
s1 = s1 * i+(temp % 10);
temp = temp / 10;
}
//cout <<"轉(zhuǎn)換后的為:"<< s1 << endl;
//if (1==flag)s1 = -s1;
if (s1 < 0) {
if (s1 < INT_MIN) return 0;
return s1;
}
else {
if (s1 > INT_MAX) return 0;
return s1;
}
}
};
?