热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Leetcode7ReverseInteger数论

题意:将整数倒置,该题简单但是需要注意数据的范围,难得的好题。如果出现1000000003或者-2000000003,倒置后的数超过int的范围,因此返回0,出现这种情况可以使用longlong

题意:将整数倒置,该题简单但是需要注意数据的范围,难得的好题。

如果出现1000000003或者-2000000003,倒置后的数超过int的范围,因此返回0,出现这种情况可以使用long long,也可以在在乘以10时进行判断。

注意:Leetcode是用linux环境的,所以他用的是g++4.78编译器,不是vc++编译器,为此在vc++编译器上我们用__int64,而g++编译器就是long long,这些是64位的int,很有用的东西,不做过相关的竞赛或者项目的人,大部分人都不知道C++有64位的int。

当然现在的编译器都支持C++11标准,就不要用__int64或long long,而是用int64,当然还有int128,Leetcode的编译器仅仅支持C++03标准,跟不上时代了,是不是更新下?当然这是题外话。。

然后给出两种解法:

long long的解法,很黄很暴力。。。

class Solution {
public:
    int reverse(int x) {
        long long ans = 0;
        int sign = 1;
        if(x <0){
            sign = -1;
            x = -x;
        }
        for(; x; x/= 10){
            ans = ans * 10 + (x % 10);
        }
        ans *= sign;
        if(ans > (long long)2147483647) return 0;
        if(ans <(long long)-2147483646) return 0;
        return ans;
    }
};

int + 乘之前判断的解法,设计相对精妙

class Solution {
public:
    int reverse(int x) {
        unsigned int MAX = 1<<31;
        int ans = 0;
        int sign = 1;
        if(x <0){
            sign = -1;
            x = -x;
        }
        for(; x; x/= 10){
            if(ans > MAX / 10) return 0;//乘之前的判断,防止溢出
            ans = ans * 10 + (x % 10);
        }
        
        return ans*sign;
    }
};

 


推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • [线段树|平衡树|树状数组]LightOJ - 1087 - Diablo
    1087-DiabloPDF(English)StatisticsForum ... [详细]
  • SCJP认证全称为SUN认证Java程序员,是Java认证系列中最基础的一门认证。要通过Java的其他认证,必须先通过SCJP认证(SCEA认证除外)。即使SUN被Oracle收购 ... [详细]
  • 自动调整列的宽度functionDBGridRecordSize(mColumn:TColumnEh):Boolean;{返回记录数据网格列显示最大宽度是否成功}beginResu ... [详细]
  • PrivateConstLF_FACESIZE32PrivateConstCF_PRINTERFONTS&H2PrivateConstCF_SCREENFONTS ... [详细]
  • Reversedigitsofaninteger.(反转一个整型数)Example1:x123,return321Example2:x-123,return-3211 ... [详细]
  • 《GOF设计模式》—命令(COMMAND)—Delphi源码示例:支持取消和重做(多次取消1)
    示例:多次取消1说明:      若要支持多级的取消和重做,就需要有一个已被执行命令的历史列表(historylist),该列表的最大长度决定了取消和重做的级数。历史列表存储 ... [详细]
  • 文章来源:http:www.blogjava.netchangchengarchive20100304314515.html我们编写的是Andorid的 ... [详细]
  • IntegertoRomanGivenaninteger,convertittoaromannumeral.Thenumberisguarant ... [详细]
author-avatar
多米音乐_34026248
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有