前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode 算法 - 7. Reverse Integer

Leetcode 算法 - 7. Reverse Integer

作者头像
用户1416054
发布2018-08-02 11:36:46
2230
发布2018-08-02 11:36:46
举报
文章被收录于专栏:JackeyGao的博客JackeyGao的博客

Leetcode 算法 - 7. Reverse Integer

Posted August 17, 2016

问题链接: 7. Reverse Integer 问题描述: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Update (2014-11-10): Test cases had been added to test the overflow behavior.

注意点: 此问题在2014-11-10有更新, 加入了对溢出的控制, 当出现溢出则返回为0. 而Python中没有溢出的行为, 所以为了Accepted, 加入了bit_length 判断. 长度为32或以上直接返回为0

Python

代码语言:javascript
复制
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        
        answer = 0
        sign = 1 if x > 0 else -1
        x = abs(x)
        while x > 0:
            answer = answer * 10 + x % 10
            x /= 10
            
            # update 2014-11-10
            if answer.bit_length() >= 32:
                return 0
                
        return sign * answer

起初我用的是转成字符串然后转成list倒序拼接, 虽然可以Accepted, 但总觉得开销大, 而且不规范, 后来两个解法速度测试后的确这个解法开销大. 顺便附上起初我的错误解答. 大家可以感受下.

Python

代码语言:javascript
复制
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        value = ''.join([ str(abs(x))[i] for i in range(len(str(abs(x))) - 1, -1, -1) ])
        if x > 0:
            number = int(value)
        else:
            number = -int(value)
            
        if number.bit_length() >= 32:
            return 0
        else:
            return number
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Leetcode 算法 - 7. Reverse Integer
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档