首页 > 代码库 > Reverse Integer问题
Reverse Integer问题
问题描述:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
这应该算是相当简单的问题了,用%和/来不断获取整数的最低位,用atoi的思想获得转换后的数。这题考察的应该是我们的细心程度。一个合格的Reverse Integer算法应该考虑到溢出的情况。
int reverse(int x) { int y=0; int max=~(unsigned int)0/2; int min=-max-1; while(x!=0){ if(x<10&&x>-10){ if(y>max/10||y==max/10&&x>max%10) return 0; if(y<min/10||y==min/10&&x<min%10) return 0; } y=y*10+x%10; x/=10; } return y;}
这里我用了~(unsigned int)0/2来计算int的最大值,这样就保证在不同机器上都能正确地处理溢出了。
其他的似乎也没有什么好说的了。
Reverse Integer问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。