题目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
思路:如果是整数,直接反转,如果是负数,那么反转以后记得添加负号
int ReverseInteger(int value)
{
int reserve=0;
int key;
int flag=1;
if(value<0)
flag = -1;
key = flag*value;
while(key)
{
reserve = reserve*10+key%10;
key = key/10;
}
return flag*reserve;
}
上述这个问题是没有考虑边界的想象
int ReverseInt(int n)
{
int flag = 1;
int value = n;
if(n < 0)
{
flag = -1;
value = -n;
}
int result =0;
while(value)
{
int temp = value %10;
if(temp > (numeric_limits<int>::max()/10 - result))
return flag == 1? numeric_limits<int>::max():numeric_limits<int>::min();
result = result*10 +temp;
value /= 10;
}
return flag*result;
}