LeetCode | #7 Reverse Integer

来源:互联网 发布:茵曼淘宝网店 编辑:程序博客网 时间:2024/06/09 17:21

题目:

Reverse digits of an integer. The reversed integer might overflow.

Example1: x = 123, return 321
Example2: x = -123, return -321

思路:

  • 一开始想,不断除10取余,余数放在数组里,然后再乘10累加,注意用long,并且检查翻转后的数是否超出int范围。
  • 后面发现根本不用数组。
/*//用了个数组,保存每位的数字,个位在前,大的在后,然后从前面开始乘10加起来public int reverse(int x) {boolean flag = true;if(x < 0){x = 0-x;flag = false;}int[] t = new int[1000]; int i = 0;long y = 0;        while(x/10 != 0){        t[i++] = x%10;        x = x/10;        }t[i] = x;for(int j = 0; j <= i; j++){y *= 10;y += t[j];}if(y > 2147483647 || (-y > 2147483648L))return 0;if(flag)return (int)y;return -(int)y;    }*///根本用不着数组,另外判断了翻转之后是否大于32bit int的范围,超出范围就返回0public int reverse(int x) {boolean flag = true;if(x < 0){x = 0-x;flag = false;}long y = 0;while(x > 0){y = y*10+x%10;x = x/10;}if(y > 2147483647 || (-y > 2147483648L))return 0;if(flag)return (int)y;return -(int)y;    }


0 0