No.007:Reverse Integer,no.007reverse
題目:
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 // 要先減maxLevel
20 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:如有不正確或提高效率的方法,歡迎留言,謝謝!