题目:
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123
,返回 321
给定 x = -123
,返回 -321
解题:
直接反转,越界处理好炒蛋
Java程序:
public class Solution {
/**
* @param n the integer to be reversed
* @return the reversed integer
*/
public int reverseInteger(int n) {
// Write your code here
int MAX = Integer.MAX_VALUE;
if(n>=0){
int res = 0;
int num = n;
while(n!=0){
if(res>MAX/10) return 0;
res =res *10 + n%10;
n = n/10;
}
return res;
}else{
int res = reverseInteger(-n);
return -res;
} }
}
总耗时: 16030 ms
Python程序:
还没好,一直Pending,Python不需要处理越界问题,
需要处理,上面说的是32位数,最大值是2的32次方,下面程序已经更改,可以AC
class Solution:
# @param {int} n the integer to be reversed
# @return {int} the reversed integer
def reverseInteger(self, n):
# Write your code here
MAX = 2147483647
flag = False
if n<0:
n = -n
flag = True
res = 0
while n!=0:
if res>MAX/10: return 0
res = res * 10 + n%10;
n = n/10
if flag:
return -res
else:
return res
总耗时: 650 ms