Skip to content
Rain Hu's Workspace
Go back

[Leetcode] 7. Reverse Integer

Rain Hu

7. Reverse Integer


一、題目

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-2^31, 2^31-1], then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:

Example 2:

Example 3:

Constraints:


二、分析

int reverse(int x) {
    int res = 0;
    while (x) {
        res = res * 10 + x % 10;
        x /= 10;
    }
    return res;
}

三、解題

1. Math

int reverse(int x) {
    int res = 0;
    while (x) {
        // 考慮邊界條件
        if (res < INT_MIN/10 || (res == INT_MIN/10 && x == -9)) 
            return 0;
        else if (res > INT_MAX/10 || (res == INT_MAX/10 && x >= 8 ))
            return 0;
        // 一般的數字翻轉
        res = res * 10 + x % 10;
        x /= 10;
    }
    return res;
}

回目錄 Catalog


Share this post on:

Previous
[Leetcode] 8. String to Integer (atoi)
Next
[Leetcode] 6. Zigzag Conversion