题目:
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 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