你的位置:首页 > Java教程

[Java教程]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:如有不正确或提高效率的方法,欢迎留言,谢谢!