首页 > 代码库 > LeetCode 7. Reverse Integer
LeetCode 7. Reverse Integer
https://leetcode.com/problems/reverse-integer/
这题比较麻烦的地方在对溢出的判断,一开始用了long long int来判断有没有溢出,不过太慢了。
后来又改用计算最大int范围,然后除以当前数字,如果小于10则在下一步*=10操作后则会溢出。
然而太慢了,直接和最大值/10的值进行比较,如果大于直接搞掉。不过有个坑,-2147483648的负数还是2147483648,特判了一下,感觉应该是有不用特判的算法。
class Solution { public: int reverse(int x) { int num=0,f=0; int bit=2147483647; if(x<0) { x=-x,f=1; if(x==-x) return 0; } while(x) { if(num>214748364) return 0; num*=10; num+=x%10; x/=10; } if(f) num=-num; return num; } };
LeetCode 7. Reverse Integer
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。