翻转整型数(水题)

看到此文,是否觉得体内洪荒之力爆发,饥渴难耐想吐槽、情不自禁想捐赠
本文为原创文章,尊重辛勤劳动,可以免费摘要、推荐或聚合,亦可完整转载,但完整转载需要标明原出处,违者必究。

支付宝微  信

正题

Reverse digits of an integer.

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

思考

改题为简单难度(水题),根据题意可以依次取到给定的整型数x的最高位到最低的数,然后依次将其乘10的x次幂后进行累加即可得到结果。这里,要知道32位的整型一共有九个0,故声明i=1000000000;

代码

class Solution {
public:
    int reverse(int x) {
        long int i = 1000000000, rev_i = 1, r = 0, start = 0;
        while (x != 0) {
            int c = x / i;
            if (start == 0 && c != 0) start = 1;
            if (start == 0 && c == 0) {
                i /= 10;
                continue;
            }
            r += x / i * rev_i;
            if (i == 1) break;
            x %= i;
            rev_i *= 10;
            i /= 10;
        }
        return (r > INT_MAX || r < INT_MIN) ? 0 : r;
    }
};

原题:https://leetcode.com/problems/reverse-integer/description/


这是一篇原创文章,如果您觉得有价值,可以通过捐赠来支持我的创作~
捐赠者会展示在博客的某个页面,钱将会用在有价值的地方,思考中...


分类: C/C++, 技术, 算法 | 标签: , , , , , | 评论 | Permalink

发表评论

电子邮件地址不会被公开。