LeetCode 7. 整数反转 学习笔记(Java)

一、题目

  • 原题链接

  • 描述
    给你一个 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

二、题解

  • 思路:
    1.int转String;
    2.反转;
    3.String转int【包括异常捕获】;

三、代码(Java)

class Solution {
    public int reverse(int x) {
        int xRev = 0;
        // 根据正负分类讨论,比较繁琐
        // if(x>=0){
        //     // String xString = String.valueOf(x);
        //     // xString = StringBuilder(xString).reverse().toString();
        //     String xString = new StringBuilder(String.valueOf(x)).reverse().toString();
        //     try{
        //         xRev = Integer.parseInt(xString);
        //     }catch(NumberFormatException e){
        //         // e.printStackTrace();
        //         xRev = 0;
        //     }                
        // }else{
        //     String xString = new StringBuilder(String.valueOf(-x)).reverse().toString();
        //     try{
        //         xRev = -Integer.parseInt(xString);
        //     }catch(NumberFormatException e){
        //         // e.printStackTrace();
        //         xRev = 0;
        //     }                
        // }
        
		//简化后的代码
        String xString = new StringBuilder(String.valueOf(Math.abs(x))).reverse().toString();
        try{
            xRev = x<0 ? -Integer.parseInt(xString) : Integer.parseInt(xString);
        }catch(NumberFormatException e){
            xRev = 0;
        }
        return xRev;   
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值