您的位置:首页 > 其它

LeetCode 007 Reverse Integer

2016-05-01 05:04 302 查看
题目大意是给一个整数,把这个整数倒过来,返回倒过来的结果。比如123返回321;-123返回-321。

看到题目马上要反应,是多大的整数?是以字符串存储的还是整型变量存储的?返回的是整型变量还是字符串?如果是字符串存的,末尾有零,那翻转之后还是否应该保留0?如果是整型变量存的,那是否保证翻转之后整型变量存的下?如果存不下的话怎么处理?这些都要向面试官问清楚。

从给出的函数原型可以看出,给出的整数x存在int里,返回的也是int。题目说了,溢出返回0。算法很简单,不断的用%取x的最后一位,加在结果变量y的最后一位即可(y=y*10+x%10,x/=10)。但是需要判断是否溢出,所以我用了一个临时变量ty,用ty存y加上x最后一位的结果,确认没溢出再y=ty。

判断溢出:

如果y和ty符号相反就是溢出。注意,这样还不够,因为y更新的时候做的是乘法,所以溢出了还有可能是同号!我用的方法是,如果ty/10等于y,那么就没溢出,否则就返回0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode