博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Reverse Integer
阅读量:6613 次
发布时间:2019-06-24

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

hot3.png

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

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

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

  在python中

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

在c++中:

#include 
int main(){    std::cout<< (unsigned int) -1<

于是按照这个认识,所写代码如下:(选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:  1534236469Output: 9646324351Expected:   0

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

084409_Aj59_1755923.png

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

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)-1class 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<
<

转载于:https://my.oschina.net/chinesezhx/blog/466288

你可能感兴趣的文章
普通域账户不能登录域控
查看>>
大牛博客(持续更新)
查看>>
《论语别裁》
查看>>
EXT4文件系统禁用日志功能
查看>>
spring4学习:使用外部属性文件
查看>>
开发同学的福利--mysql监控工具sqlprofiler,类似sqlserver的profiler工具
查看>>
逸鹏说道:性格色彩读后感
查看>>
#1014 : Trie树
查看>>
Poj2229--Sumsets(递推)
查看>>
FMDB数据库相关
查看>>
event.clientX和event.clientY
查看>>
国外PHP学习网站书籍资料汇总
查看>>
Lock
查看>>
HDU-1024
查看>>
SqlServer自动备份作业
查看>>
maven scope含义的说明
查看>>
RXTX串口通信 java
查看>>
PLSQL Develope连接oracle数据库配置
查看>>
Jmeter测试带加密参数的接口
查看>>
0623-TP框架整理一(下载、入口文件、路由、创建控制器、调用模板、系统常量、命名空间)...
查看>>