文档章节

LeetCode Reverse Integer

L很失败L
 L很失败L
发布于 2015/06/13 09:23
字数 400
阅读 103
收藏 0
点赞 0
评论 0

最近开始刷刷的Leetcode题,遇到了一道这么一个简单的题 Reverse Integer ,然而并没有看上去的那么简单,

特殊的坑就如这道题说的 overflow !

一开始天真的认为就是每个语言自己定义的最大整数,如

  在python中

>>import sys
>>print sys.maxint
>>2147483647

在c++中:

#include <iostream>
int main(){
    std::cout<< (unsigned int) -1<<std::endl; //结果是4294967295
    return 0;
}

于是按照这个认识,所写代码如下:(选python是因为用到了python的内置函数的特性)

class Solution:
    # @param {integer} x
    # @return {integer}
    def reverse(self, x):
        import sys
        if x > (sys.maxint) : return 0
        if x >= 0 : return int(str(x)[::-1]) if int(str(x)[::-1]) < sys.maxint else 0
        else: return 0-int(str(-x)[::-1]) if int(str(-x)[::-1]) < sys.maxint else 0
Input:  1534236469
Output: 9646324351
Expected:   0

事实证明太年轻,后来仔细阅读了提示,才发现


原来这不是一个简简单单的例子的假设,而是题目要求,于是改写为下面的代码:

class Solution:
    # @param {integer} x
    # @return {integer}
    def reverse(self, x):
        import sys
        if x > (2**31-1) : return 0
        if x >= 0 : return int(str(x)[::-1]) if int(str(x)[::-1]) < (2**31-1) else 0
        else: return 0-int(str(-x)[::-1]) if int(str(-x)[::-1]) < (2**31) else 0

这样结果就正常了,

下面是用c++写的:

#define max_int (1<<31)-1
class Solution {
public:
    int reverse(int num) {
    bool flag = (num<0)?0:1;//判断输入的数的正负
    num = (num>0)?num:-num;//以非负数处理
    int result = 0;
    if (num>max_int) {return 0;}
    while(num!=0){
        if (result >(max_int-num%10)/10){return 0;} //如果已经overflow,就会比max_int小,这样判断
        result = result*10 + num%10;
        std::cout<<result<<std::endl;
        num/=10;
    }
    return (flag)?result:-result;
    }
};


© 著作权归作者所有

共有 人打赏支持
L很失败L
粉丝 2
博文 14
码字总数 7388
作品 0
合肥
程序员
[leetcode] Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the int......

jdflyfly ⋅ 2014/06/24 ⋅ 0

[leetcode] Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you thought about this? Here are some good questions to ask before coding. Bonus......

jdflyfly ⋅ 2014/06/24 ⋅ 1

LeetCode:Palindrome Number - 回文数

1、题目名称 Palindrome Number(回文数) 2、题目地址 https://leetcode.com/problems/palindrome-number 3、题目内容 英文:Determine whether an integer is a palindrome. Do this witho......

北风其凉 ⋅ 2015/09/24 ⋅ 0

LeetCode:Reverse Integer - 翻转数字

1、题目名称 Reverse Integer(翻转数字) 2、题目地址 https://leetcode.com/problems/reverse-integer/ 3、题目内容 英文:Reverse digits of an integer. 中文:翻转一个正整数的各位,形...

北风其凉 ⋅ 2015/09/20 ⋅ 0

7. Reverse Integer - LeetCode

LeetCode Problems Solutions question description: 问题描述 Reverse digits of an integer. The input is assumed to be a 32-bit signed integer. Your function should return 0 when t......

才华惊动党中央 ⋅ 2017/08/24 ⋅ 0

leetocde——Palindrome Number

这个题在leetcode上提示如下: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note the restriction of using extra space.......

wikison ⋅ 2015/08/24 ⋅ 0

决战Leetcode: easy part(1-50)

本博客是个人原创的针对leetcode上的problem的解法,所有solution都基本通过了leetcode的官方Judging,个别未通过的例外情况会在相应部分作特别说明。 欢迎互相交流! email: tomqianmaple@...

qq_32690999 ⋅ 01/25 ⋅ 0

LeetCode : Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321...

tsmyk0715 ⋅ 2016/08/07 ⋅ 0

LeetCode日记2

LeetCode-5 思路: (1)最后用子字符串操作返回string。 return s.substr(startpos, maxlength); (2)回文串的判断: 1)首先找出回文串中间连续的重复的字符。 2)再向两边进行判断 (3...

fxdhdu ⋅ 2015/10/19 ⋅ 0

Reverse Nodes in k-Group

[LeetCode] 025. Reverse Nodes in k-Group (Hard) (C++/Java),有需要的朋友可以参考下。 索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/l......

panpan123_ ⋅ 2017/01/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Netweaver和SAP云平台的quota管理

Netweaver 以需要为一个用户上下文(User Context)能够在SAP extended memory区域中分配内存尺寸创建quota为例。 对于Dialog工作进程,使用事务码修改参数 ztta/roll_extension_dia. 对于非D...

JerryWang_SAP ⋅ 12分钟前 ⋅ 0

IDEA提示编码速度

焦点移动 将焦点冲代码编辑窗口移动到菜单栏:Alt+菜单栏带下划线字母 将焦点从工具窗口移动到代码编辑窗口 Esc或Shift+Esc 将焦点从代码编辑移动到最近使用的工具窗口 F12 模板提示 Ctrl+J...

bithup ⋅ 21分钟前 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 45分钟前 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 51分钟前 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

python3.6 安装pyhook_3

我的是在win下的,忙了半天老是安装不了, pip install 也不行。 那么可以看出自己的版本是32bit 一脸懵逼 没办法 只好下载32版本的来安装 我一直以为 是 对应32 位的 。 下面是 小例子 http...

之渊 ⋅ 今天 ⋅ 0

004、location正则表达式

1、location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。 2、location的语法 = 开头表示精确匹配 ^~...

北岩 ⋅ 今天 ⋅ 0

CentOS7 静默安装 Oracle 12c

环境 CentOS7.5 最小安装 数据库软件 linuxx64_12201_database.zip 操作系统配置 关闭 SELinux sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 关闭防火墙 systemctl disable ......

Colben ⋅ 今天 ⋅ 0

Yii2中findAll()的正确使用姿势/返回为空的处理办法

从一次错误的操作开始 $buildingObject = Building::findAll("status=1"); 1 这个调用看着没有任何毛病,但是在使用时返回的结果却是一个空数组。再回过头来看看数据表中: 按照套路来讲,查...

dragon_tech ⋅ 今天 ⋅ 0

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部