入力された整数の数字を逆にせよ。

例1: x = 123, 321をリターンする。
例2: x = -123, -321をリターンする。

 

数字を逆にしたらオーバーフローが起きる場合、0をリターンせよ。

 

解:

簡単すぎで何を書けばいいのがわかりません。 正負とオーバーフローさえ注意を払えれば多分問題ないんです。

 

C++でのコードは以下です。

class Solution {
public:
    int reverse(int x)
    {
        int symbol = x >=0 ? 1:-1;
        x = x>=0? x:-x;
        int target = 0;
        while(x>0)
        {
            int z = x % 10;
            x = x/10;
            if (target > INT_MAX / 10) return 0;
            target*=10;
            if (target > INT_MAX - z) return 0;
            target+=z;
        }
        return target * symbol;
    }
};