此题实现比较简单,但是边界处理比较麻烦。题目要求是以32位考虑,所以可表达的数的范围是-2147483648~2147483648。

我们需要判断当前的数翻转之后是否在这个范围中,我的思路是首先对当前数的绝对值进行判断,如果它不是一个10位数就可以正常的执行;

反之,进入判断边界的部分。将边界的最大值的每一位分别存入数组中。逐位进行比较,若翻转后越界,则返回0;

但是这样还是无法通过,会在边界处出错,即输入为-2147483648和2147483648就会得出错误的结果,正确的情况应该返回0;

对于上述的情况没有想明白原因,所以就取巧加了个判断,没想到竟然通过了。而且运行时间竟然是最短的,真是吓死我了!!

有大神看出哪里有毛病请一定告诉我,要不然我就瞎嘚瑟了~~

代码如下:

 class Solution {
public:
int reverse(int x) {
int result = ;
if(x == || x == -)
return ;
if(abs(x) < )
{
while(x != )
{
result = result * + x % ;
x = x / ;
}
}
else
{
int a[] = {,,,,,,,,,};
int i = ;
int flag = abs(x);
while(flag != )
{
if((flag % ) > a[i])
{
return ;
}
else if((flag % ) < a[i])
{
while(x != )
{
result = result * + x % ;
x = x / ;
}
return result;
}
flag /= ;
i++;
}
}
return result;
}
};

最新文章

  1. 使用Nancy.Host实现脱离iis的Web应用
  2. SAP ALV标准范例程序介绍
  3. 2014 Super Training #4 G What day is that day? --两种方法
  4. MongoDB学习(三)数据导入导出及备份恢复
  5. 2012的数据库 select @@version 都是说版本为2008 R2
  6. VIP网络水军账号
  7. 利用if,else判断输入的是不是一个正整数
  8. linux下启动某个进程
  9. shell之冒号的作用
  10. Java集合框架Collection
  11. android绑定Service失败原因
  12. 解决 .NET Core 中 GetHostAddressesAsync 引起的 EnyimMemcached 死锁问题
  13. 微信a标签不跳转
  14. apache配置多个站点
  15. 201521123081《java程序设计》 第11周学习总结
  16. javascript中数组化的一般见解
  17. Java密码体系结构简介:Java Cryptography Architecture (JCA) Reference Guide
  18. android 开发 View _10_ Path之基本操作
  19. 洛咕 P3964 [TJOI2013]松鼠聚会
  20. [转帖]DAS、SAN、NAS

热门文章

  1. python(22)总结下最近遇到的编码问题
  2. 基本 linux命令
  3. MemcacheQ 的安装与使用
  4. IronPython 设置包路径
  5. sql2008连接数据库问题
  6. 计算机硬件——pci卡图片
  7. Servlet中的cookie和session
  8. mysql如何给汉字按照首字母顺序排序
  9. 理解EnterCriticalSection 临界区
  10. java的新窗体