leetcode 7. 整数を反転(c++版)
926 ワード
32ビットの符号付き整数を指定し、整数の数値を反転します.
例1:
例2:
例3:
注意:
我々の環境では32ビットの符号付き整数しか記憶できないと仮定し,その数値範囲は[−231,231−1]である.この仮定によれば,反転後の整数がオーバーフローすると0を返す.
個人的なまとめ:最初は正負の状況を別々に議論しなければならないと思っていたが、判断オーバーフローの違いを除いて、反転操作は基本的に同じであることが分かった.
例1:
: 123
: 321
例2:
: -123
: -321
例3:
: 120
: 21
注意:
我々の環境では32ビットの符号付き整数しか記憶できないと仮定し,その数値範囲は[−231,231−1]である.この仮定によれば,反転後の整数がオーバーフローすると0を返す.
class Solution {
public:
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX-1)
int reverse(int x) {
int flag=x<0?-1:1;
int num=0;
while(x){
if((flag==-1&&(INT_MIN/10>num))||(flag==1&&INT_MAX/10
個人的なまとめ:最初は正負の状況を別々に議論しなければならないと思っていたが、判断オーバーフローの違いを除いて、反転操作は基本的に同じであることが分かった.