LeetCode題庫整理【Java】—— 7整數反轉
LeetCode題庫整理【Java】
7.整數反轉
題目:給出一個32位的有符號整數,你需要將這個這個整數中每位上的數字進行反轉。
示例1:
輸入: 123
輸出: 321
示例2:
輸入: -123
輸出: -321
示例3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−2^31, (2^31) −1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
思路:用一個StringBuilder(字串生成器)型別的變數來儲存數字中每一位上的值,通過對輸入的int型數值採用取餘的方式依次取出最後一位數字,陣列越界的話使用 Integer.parseInt()會丟擲異常,從而達到陣列越界的判斷
完整的Java測試程式碼如下:
public class IntegerInversion {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num=-123;
IntegerInversion reversion=new IntegerInversion();
reversion.reverse(num);
}
public int reverse(int x) {
StringBuilder str=new StringBuilder();
if(x<0) { //儲存負號,使x變為絕對值大小
str.append('-');
x = -x;
}
while(x>0) {
str.append( x%10 );//逐次將x的最後一位數字加進str中
x/=10;//取整
}
System.out.println(str);
//用Integer.parseInt()函式丟擲異常來判斷反轉後的字串化為整型後是否越界
try {
return Integer.parseInt(str.toString());
}catch(Exception e) {
return 0;
}
}
}
顯然,這種方法只遍歷了一遍原來的數字,時間複雜度是O(n),n為輸入數字的位數(包含負號)。至於空間複雜度,由於只用了一個長度為n的StringBuilder型別的變數,因此空間複雜度是O(n)。
參考博文:LeetCode007——反轉整數https://blog.csdn.net/qq_41231926/article/details/81915741
注:有一些博主使用long型別變數來儲存轉換後的結果進而判斷是否越界,我覺得不符合題目中 “只能儲存得下 32 位的有符號整數” 的假設,32位有符號整數應該是將資料型別限制為了int型, 所以我覺得不能使用long, 當然,此意見僅供參考。
相關文章
- LeetCode(7)--.反轉整數LeetCode
- LeetCode每日一題:整數反轉(No.7)LeetCode每日一題
- LeetCode7.整數反轉 JavaScriptLeetCodeJavaScript
- LeetCode7:ReverseInteger(整數反轉)LeetCode
- 7.整數反轉
- LeetCode反轉整數(Python)LeetCodePython
- 詳解 LeetCode_007_整數反轉(Java 實現)LeetCodeJava
- leetcode 解題:7. 整數反轉 @ 彈出和推入數字 & 溢位前進行檢查LeetCode
- 每日一道 LeetCode (2):整數反轉LeetCode
- 7.反轉整數。面試,筆試題目總結練習面試筆試
- LeetCode題庫13. 羅馬數字轉整數(c++實現)LeetCodeC++
- leetcode13題——羅馬數字轉整數LeetCode
- Lintcode 反轉整數
- LeetCode 13[羅馬數字轉整數]LeetCode
- [LeetCode] Reverse Integer 翻轉整數LeetCode
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- 整數反轉:給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。符號
- [LeetCode] Integer to Roman 整數轉化成羅馬數字LeetCode
- [LeetCode] Roman to Integer 羅馬數字轉化成整數LeetCode
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- 每日一道演算法:整數反轉演算法
- LeetCode_Python(13)_羅馬數字轉整數LeetCodePython
- python-leetcode13羅馬數字轉整數PythonLeetCode
- LeetCode-343. 整數拆分 - 題解分析LeetCode
- leetcode:確實的第一個整數(java)LeetCodeJava
- 每日一道 LeetCode (4):羅馬數字轉整數LeetCode
- 給定一個 32 位有符號整數,將整數中的數字進行反轉。符號
- [LeetCode] String to Integer (atoi) 字串轉為整數LeetCode字串
- LeetCode刷題整理LeetCode
- 2020-11-13整數轉換為字串 字元反轉字串字元
- 讓我們一起啃演算法----整數反轉演算法
- LeetCode每日一題: 僅僅反轉字母(No.917)LeetCode每日一題
- 把字串轉換成整數(Java實現)字串Java
- Leetcode 8. String to Integer (atoi) 字串轉整數 (atoi)LeetCode字串
- leetcode 整數拆分(c++)LeetCodeC++
- 資料結構與演算法---螺旋矩陣、整數反轉資料結構演算法矩陣
- leetcode 反轉連結串列LeetCode
- LeetCode初級-反轉字串LeetCode字串