思路:取绝对值,反转,并判断反转的结果是否大于最大整数,需要注意的细节:判断时需要这样:result > (Integer.MAX_VALUE - v) / 10 否则result * 10 + v% 10 > Integer.MAX_VALUE左边会直接出现溢出。最后加上符号位。

     public int reverse(int x) {
if(x==Integer.MIN_VALUE){
return 0;
}
//然后取绝对值,判断绝对值不大于Integer.MAX_VALUDE,不能直接用result拼接判断,否则会溢出。
//例如result * 10 + v% 10 > Integer.MAX_VALUE ,result为反转结果,v为最后一位,也是上一个原始数截取的余数.
//左边很可能就会溢出,因此需要反转来判断 :result > (Integer.MAX_VALUE - v) / 10
int absx=Math.abs(x);
int result=0;
while(absx!=0){
int v=absx%10; //余数,作为反转后的连接位
if(result>(Integer.MAX_VALUE-v)/10){
//溢出
return 0;
}
//如果不溢出,则连接下一位
result=(result*10+v);
absx/=10; //原始数去掉最后一位,重复上述截取连接步骤
}
//如果原始数为负数,则返回负数,否则直接返回
return x>0?result:-result; }

最新文章

  1. C# Linq排序
  2. scrapy爬虫结果插入mysql数据库
  3. Java笔记:对象,方法,类
  4. VS2017 RC IIS Express 无法启动 环境不正确
  5. textarea关于空格和换行那点事
  6. phantomjs 乱码解决
  7. 【MVC】自定义ASP.NET MVC Html辅助方法
  8. 过长文字自动换行的技巧 Word-Break Word-Wrap
  9. 初识KMP
  10. 【supervisord】部署单进程服务的利器
  11. 资深小白带你走进OS Memory
  12. Android为TV端助力 自定义通知栏
  13. 「SDOI2014」重建 解题报告
  14. Java“禁止”泛型数组
  15. Spring Boot REST(二)源码分析
  16. 关于学习JAVA程序设计语言的回顾与展望
  17. 【Java面试题】21 Java中的异常处理机制的简单原理和应用。
  18. Linux CentOs 下 安装 mysql nginx redis
  19. C#导入PFX和Cer证书的工具类
  20. Python连接符的种类和使用区别

热门文章

  1. mac 安装 office
  2. Linux系统救援模式应用:单用户模式找回密码
  3. 常用jar包之commons-digester使用
  4. Galileo Gen2 之MQTT通讯
  5. UNP学习笔记(第十八章 路由套接字)
  6. 【Excle数据透视表】如何快速选取所有标签并标注黄色底纹
  7. .net mvc项目 ajax
  8. Ruby之Rspec的报错解决
  9. C#日期时间类型格式化大全集 C#DateTime 类型格式化大全集
  10. 删除反复行SQL举例