【LeetCode】#7整數反轉(Reverse Integer)
阿新 • • 發佈:2018-12-03
【LeetCode】#7整數反轉(Reverse Integer)
題目描述
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
Description
Given a 32-bit signed integer, reverse digits of an integer.
Example
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
解法
解法1:
class Solution{ public int reverse(int x){ if(x==0) return 0; boolean flag = false; if(x<0) flag = true; int res = 0; String str = x + ""; String[] strs = str.trim().split(""); StringBuilder sb = new StringBuilder(); for(int i=strs.length-1; i>0; i--){ sb.append(strs[i]); } try{ if(!flag){ sb.append(strs[0]); String s = sb.toString(); res = Integer.parseInt(s); }else{ String s = sb.toString(); res = Integer.parseInt(s); res *= (-1); } return res; }catch(Exception e){ return 0; }finally{} } }
解法2:
class Solution{ public int reverse(int x){ int res = 0; while(x!=0){ int pop = x%10; x /= 10; if(res>Integer.MAX_VALUE/10 || res==Integer.MAX_VALUE/10 && pop>7) return 0; if(res<Integer.MIN_VALUE/10 || res==Integer.MIN_VALUE/10 && pop<-8) return 0; res = res*10 + pop; } return res; } }