Leetcode Reverse Integer 反转整数
2015-08-03 21:04
615 查看
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
一开始没考虑溢出情况:
Example1: x = 123, return 321
Example2: x = -123, return -321
一开始没考虑溢出情况:
int reverse(int x) { long sum=0; while(x){ sum*=10; sum+=x%10; x=x/10;} return sum; }提交后报错,很明显就是WA,考虑溢出情况:reverse之后如果上溢,返回最大值INT_MAX; 如果是下溢,返回最小值INT_MIN。这里没有简单地将INT_MIN赋值成-2147483648,是因为-2147483648对于编译器而言是个表达式,而2147483648对于32-bit整数是无法表示的,所以经过这个表达式的结果是未定义的。在GCC上直接写-2147483648后,编译器给出了警告,说结果是unsigned。类似的有INT_MAX。
int reverse(int x) { if(x==INT_MIN)return 0;//实际上int型的x只可能x==INT_MIN long sum=0; bool flag=1; if(x<0) {flag=0;x=x*(-1);} int intf=INT_MAX/10; while(x){ if(sum>intf){return 0;} else{ sum*=10; sum+=x%10; x=x/10;}} if(flag==1)return sum; else return sum*(-1); }
相关文章推荐
- socket 从网上下载到本地
- poj 5251(凸包 旋转卡壳)最小矩形面积
- poj 1151 Atlantis
- servlet文件上传与下载
- 百钱买百鸡
- MSFlexGrid控件的相关介绍
- C# openfiledialog的使用
- vs 默认的INC和LIB
- hdoj 3635 Dragon Balls【并查集求节点转移次数+节点数+某点根节点】
- SAX 的test
- SAX解析器
- uva 1600
- 欢迎使用CSDN-markdown编辑器
- Linux内核——伙伴系统和slab缓存
- socket选项总结(setsocketopt)
- DOM解析器
- 线性探测法构造哈希表(hash)
- 线性探测法构造哈希表(hash)
- 线性探测法构造哈希表(hash)
- 线性探测法构造哈希表(hash)