每天一题LeetCode【第6天】

T7. Reverse Integer【Easy

题目

把一个 Integer 整数逆转

示例1: x= 123, return 321

示例2: x= -123, return -321

思路

要承认这个 Top Solution 写的比我的代码短多了,思路很巧妙(哎真的好短!!!)。

它通过取余数得到尾数,然后通过不断result*10+尾数把最开始的尾数始终保持在首位,达到逆转的目的。

但是要注意的是,这里会出现一个溢出的问题。需要检测溢出,并返回0。这个代码用公式算回原来的值看前后是否相同,以此判断是否溢出。

具体可以看下面代码以及注释(我怎么总说这句话( • ̀ω•́ ))。

代码

代码取自 Top Solution,稍作注释

public int reverse(int x)
{
    int result = 0;
    while (x != 0)
    {
        //得到末尾的数
        int tail = x % 10;
        int newResult = result * 10 + tail;
        //这里为了检测溢出,若溢出两者就不相等了,就返回0
        if ((newResult - tail) / 10 != result)
        { return 0; }
        result = newResult;
        //去掉末尾的数重新赋给x
        x = x / 10;
    }

    return result;
}```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 我从小话不多,甚至常常被骂哑巴,也许是先天缺陷?又或者性格原因。这种“美德”延续到了至今。 有两种情况我会...
    bramasole潼恩阅读 4,075评论 9 2
  • 我以为,朋友会陪我一直走。可是,终究只是奢望。她们慢慢离我而去,只留下我孤零零站在那儿。┏ (^ω^)=☞自己还有...
    季辰阅读 3,945评论 0 0
  • 文/刘宏涛 就算是雨,从遥远的天空中降临,即使在阳光的照耀下依然会回到故地,但它也曾浸润某株草芯,留下过痕迹。我们...
    傅聪_阅读 3,493评论 0 0

友情链接更多精彩内容