前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0打卡leetcode之day8--反转整数

从0打卡leetcode之day8--反转整数

作者头像
帅地
发布2018-08-30 11:50:50
5660
发布2018-08-30 11:50:50
举报
文章被收录于专栏:苦逼的码农

前沿

貌似这次没啥前言,,有的就是这道题比较简单….

题目描述

代码语言:javascript
复制
给定一个 32 位有符号整数,
将整数中的数字进行反转。

示例1

代码语言:javascript
复制
输入: 123
输出: 321

示例2

代码语言:javascript
复制
输入: -123
输出: -321

示例3

代码语言:javascript
复制
输入: 120
输出: 21

注意

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

我的解题思路

这道题还是比较简单的,在leetcode的定位属于简单级别。需要处理的点只有两个,一个是把数字反转,一个是判断是否溢出。

数字反转我猜大家玩c的时候都弄过,就不多加说明了。

不过那个判断溢出的,我是用一个long类型的变量来存放反转后的数,然后再来进行比较的。

直接上代码:

代码语言:javascript
复制
public int reverse(int x) {
        //标记正负数
        boolean flag = false;
        //存放反转后的数
        long y = 0;
        if(x < 0){
            flag = true;
            x = -x;
        }
        //进行反转
        while(x > 0){
            y = y * 10 + x % 10;
            x = x / 10;
        }
        if(flag)
            y = -y;

        if(y > Math.pow(2,31) - 1 || y < Math.pow(-2,31)){
            return 0;
        }else{
            return (int)y;
        }
    }

假如你是用java做的,不知道你有没这种想法:

就是通过把数字转换为字符串,然后再把字符串转换为int类型。这种做法我觉得不大友好,因为对于末尾的0本来我们是要弃掉的,它也会被转换过来,而且这种做法的时间复杂度和空间复杂度都更高。

假如你们有更加优雅的做法,欢迎指点出来。我创建了一个leetcode的讨论群,如果你想进,可以加我微信(公号右下方有我的微信),备注“leetcode”,我拉你进群,不过,貌似这群有点不活跃,哈哈,可能是我没有带动大家….

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅地玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前沿
  • 题目描述
  • 我的解题思路
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档