【LeetCode从零单排】No.7 Reverse Integer
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode从零单排】No.7 Reverse Integer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前話
? ? ? 今天開始勵志刷一下leetcode上面的題目(還好這個網站沒被TG和諧)。從easy的開始,數一下差不多有40道,爭取兩個月搞定。題目
? ? ? ?沒想到做的第一道題目,雖然看似簡單,卻費了很大周折。題目如下:
Reverse digits of an integer.
Example1:?x = 123, return 321
Example2:?x = -123, return -321
? ? ? 剛看到這道題,首先蹦出的想法是把整數轉換為字符串,然后前后位置換下再轉回int型,實事證明這樣是不可取的,因為當輸入的int型數字很大的時候,比如412851289525983,就會產生溢出,這樣在使用Integer.parseInt這種函數的時候會報錯,正確的做法是對數字進行int操作,利用取10的余數獲得每位數字。下面展示下,錯誤答案和正確答案。
代碼
1.正確解 public class Solution {public int reverse(int x) {int sum = 0;while (Math.abs(x) != 0){if(Math.abs(sum) > Integer.MAX_VALUE / 10){return 0;}sum = sum * 10 + x % 10;x = x / 10;}return sum;} }2.錯誤解 public class Solution {public int reverse(int x) {if(Math.abs(x)>100){return 0;}else{String x_str=Integer.toString(x);char[] x_char = x_str.toCharArray();String x_reverse_str="";//System.out.print(Character.isDigit(x_char[0]));if(Character.isDigit(x_char[0])){ for(int i=(x_str.length()-1);i>=0;i--){x_reverse_str+=x_char[i];} }else{x_reverse_str+=x_char[0];for(int i=(x_str.length()-1);i>=1;i--){x_reverse_str+=x_char[i];} } return Integer.parseInt(x_reverse_str);}} }
代碼下載:https://github.com/jimenbian/GarvinLeetCode
/********************************
* 本文來自博客 ?“李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結
以上是生活随笔為你收集整理的【LeetCode从零单排】No.7 Reverse Integer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法数据结构Java实现】Java实现
- 下一篇: 【LeetCode从零单排】No.8 S