算法---数字序列反转

//题目:

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。


如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。


假设环境不允许存储 64 位整数(有符号或无符号)。
 


示例 1:


输入:x = 123
输出:321
示例 2:


输入:x = -123
输出:-321
示例 3:


输入:x = 120
输出:21
示例 4:


输入:x = 0
输出:0


class Solution {
    public int reverse(int x) {
        String s=String.valueOf(x);
        boolean isNegative=false;
        if(s.charAt(0)=='-'){
            isNegative=true;
            s = s.substring(1);
        }
        s = new StringBuffer(s).reverse().toString();
        s= isNegative?"-"+s:s;
        int i=0;
        try{
             i=Integer.parseInt(s);
        }catch(Exception e){

        }
       
        return i;
}
}

方法二

//忽略Java本身的语言性质  这里纯粹的算法

  public int reverse(int x) {
        long n = 0;
        while(x != 0) {
            n = n*10 + x%10;
            x = x/10;
        }
        return (int)n==n? (int)n:0;
    }

 

 

 

 

方法一

posted @ 2021-09-29 14:17  橘子味汽水  阅读(100)  评论(0编辑  收藏  举报