程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> No.007:Reverse Integer,no.007reverse

No.007:Reverse Integer,no.007reverse

編輯:JAVA綜合教程

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:如有不正確或提高效率的方法,歡迎留言,謝謝!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved