入力された整数の数字を逆にせよ。
例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;
}
};