Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。
你的位置:NoAlGo博客 » 题解 » 

Leetcode Reverse Integer

Leetcode algorithms 第 7 题:Reverse Integer

题目

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

解答

这道题比较简单,只要一个循环逐个取出x的最低位,然后添加到一个答案中即可。关键是负数和溢出的处理。

  • 关于负数只要在开始出进行记录并转化为正数即可。
  • 关于溢出这里也是简单地转化为long long类型,然后返回时判断一次即可。

具体代码如下:

class Solution {
public:
    int reverse(int x) {
        long long a = x; //防止溢出
        long long flag = 1, ans = 0; //记录负数
        if (a < 0) flag = -1, a = -a;
        while(a) ans = ans*10 + a%10, a /= 10;
        ans = flag * ans;
        return ans > INT_MAX  || ans < INT_MIN ? 0 : ans;
    }
};
上一篇: 下一篇:

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论