博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转
阅读量:2116 次
发布时间:2019-04-30

本文共 1152 字,大约阅读时间需要 3 分钟。

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

class Solution {    public int reverse(int x) {        int num = x;//数字存起来        if (num < 0) {            x = Math.abs(num);//换成正整数计算        }        if (x >= 0 && x < 10) {            return x;//一位数,直接返回        }        int numTmp = x;        int count = 0;        while (x > 0) {            count++;//统计是几位数            x /= 10;        }        int[] arr = new int[count];        for (int i = 0; i < count; i++) {            arr[i] = numTmp % 10;//把每一位从个位开始放在一个数组里            numTmp /= 10;        }        long res = 0;//计算中可能会溢出,因此设为long        for (int i = 0, j = count - 1; i < count; i++, j--) {            res += arr[i] * (long) Math.pow(10, j);            if (res>(long)Math.pow(2,31)-1){//如果溢出,则将结果设为0,跳出循环。                res=0;                break;            }        }        if (num >= 0) {            return (int)res;//数为正整数        }else {            return -(int)res;//数为负整数        }    }}

原文:https://blog.csdn.net/qq_40408483/article/details/89025284

你可能感兴趣的文章
什么时候可以使用Ehcache缓存
查看>>
Java核心知识点-JVM结构和工作方式
查看>>
Java编程中“为了性能”一些尽量做到的地方
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
Java工程师成神之路
查看>>
如何在 Linux 上自动设置 JAVA_HOME 环境变量
查看>>
MSSQL复习笔记
查看>>
Spring基础知识汇总
查看>>
Chrome扩展插件
查看>>
log4j.xml 日志文件配置
查看>>
如何删除MySql服务
查看>>
BAT Java和Rti环境变量设置
查看>>
NodeJs npm install 国内镜像
查看>>
python3.5.2 mysql Exccel
查看>>
mysqlDump 导出多表,其中部分表有限制数据内容
查看>>