您的位置:首页 > 其它

Reverse Integer

2015-06-10 17:15 176 查看
Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

越简单的题目,才发现技巧越多啊.题目很容易理解,保持原代数符号不变将位置颠倒.

一开始写的代码:

int reverse(int x) {
int y=0 ;

int tem;
while(1)
{
if( (tem=x%10 )!=0 )
{ y = y*10 +tem;
x = x/10;
}else
break;
}
return(y);

}


写完之后才发现一堆错误啊,简直泪流满面,自己依旧是个渣… 首先判定条件的问题 (x%10)这个地方 对于含有0的数字就不行了,比如10.然后是范围的问题,int的范围是2147483647 到-2147483648,给你数字X不可能超过但是反转后就不一定了需要考虑(在leetcode要求中如果超过就返回0).参考了一下别人的代码才发现小技巧真的很重要,别人的代码看这就是舒服.

int reverse(int x) {
long y=0;
while(x)
{
y = y*10 +x%10;
x = x/10;

}
if(y >2147483647 || y <-2147483648)
return(0);
return(y);
}


这代码就清爽多了.判定条件直接就X .简单实用,受益匪浅啊.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: