首页 > 代码库 > No.007:Reverse Integer

No.007:Reverse Integer

题目:

Reverse digits of an integer.
Example1:
x = 123, return 321
Example2:
x = -123, return -321

官方难度:

Easy

翻译:

倒转整数。

例子:

输入123,返回321;输入-123,返回-321。

思路:

1.既然是倒转整数,拿倒转字符串的思路虽然能做,但应该不是原题想要的结果,而且效率应该也会差一点。

2.优先获得输入整数的最高位数,使用取余的方式乘以10的对应次方,循环累加。

解题中可能遇到的困难:

1.负数需要转成正数来特殊处理。

解题代码:

技术分享
 1     private static int method(int number) { 2         // 正负的标志位 3         int flag = 1; 4         // 考虑负数转化 5         if (number <= 0) { 6             number = -number; 7             flag = -1; 8         } 9         int sum = 0;10         // 先获取最高位,准备一个副本11         int maxLevel = 0;12         int temp = number;13         while (temp > 0) {14             temp /= 10;15             maxLevel++;16         }17         // 取余数,乘以因子累加18         while (number > 0) {19             // 要先减maxLevel20             sum += (number % 10) * Math.pow(10, --maxLevel);21             number /= 10;22         }23         return sum * flag;24     }
View Code

 测试代码地址:

https://github.com/Gerrard-Feng/LeetCode/blob/master/LeetCode/src/com/gerrard/algorithm/easy/Q007.java

LeetCode题目地址:

https://leetcode.com/problems/reverse-integer/

PS:如有不正确或提高效率的方法,欢迎留言,谢谢!

No.007:Reverse Integer