• 题目:

反转整数

  • 难度:

简单

  • 描述:

给定一个 32 位有符号整数,将整数中的数字进行反转。

  • 解法:
class Solution {
public int reverse(int x) {
//int型整数最大位数
final int MAX_LENGTH = 10;
//最大值和最小值
int maxValue = Integer.MAX_VALUE;
int minValue = Integer.MIN_VALUE;
String inputNumber = String.valueOf(x);
//是否位负数
boolean isNegative = false;
if (inputNumber.charAt(0) == '-') {
isNegative = true;
}
StringBuilder sb = new StringBuilder(inputNumber);
//正数
if (!isNegative) {
//按字符串反转
String rev = sb.reverse().toString();
//大于Int最大值,溢出
if (rev.length() >= MAX_LENGTH && rev.compareTo(String.valueOf(maxValue)) > 0) {
return 0;
} else {
return Integer.valueOf(rev);
}
//负数
} else {
String rev = new StringBuilder(sb.substring(1)).reverse().toString();
//比较时需要先把minValue转成字符串,不能直接加"-"号转成正数,因为会溢出,结果还是负数
if (rev.length() >= MAX_LENGTH && rev.compareTo(String.valueOf(minValue).substring(1)) > 0) {
return 0;
} else {
return -Integer.valueOf(rev);
}
}
}
}
  • 总结:

计算时,整形int值,如果存在负数情况,千万不能直接用“-”号取反得到正数结果,因为负数最小值取绝对值比正数的最大值还要大。

最新文章

  1. scala中的面向对象定义类,构造函数,继承
  2. iOS push与present Controller的区别
  3. [iOS] 使用xib作为应用程序入口 with IDE
  4. JavaWeb项目开发案例精粹-第2章投票系统-002配置文件及公共类
  5. 三星S4使用体验(Markdown版)
  6. I2C Verilog的实现(二)
  7. html input 文本框的一些操作(限制输入...)
  8. PermGen space错误解决方法
  9. c语言函数定义、函数声明、函数调用以及extern跨文件的变量引用
  10. 解决android开发webservice的发布与数据库连接的问题
  11. android Animation动画的xml使用
  12. git cherry-pick 整理
  13. (七十四)iOS8之前使socket可以后台运行的方法
  14. redis 慢日志查询
  15. eclipse打包java项目
  16. 修改Windows server 时间同步
  17. ESXI6时间源快速同步
  18. php 排列组合函数(无重复组合,可重复组合【全排列组合】)
  19. enumerate()函数用法
  20. hibernate validate

热门文章

  1. 去掉点击map时的显示area边框
  2. SQLite 连接两个字符串
  3. Sql server不同数据类型间拼接(+)
  4. (转)java 静态内部类
  5. Android基础新手教程——3.1 基于监听的事件处理机制
  6. java网络编程4-ServerSocket
  7. elasticsearch.net search入门使用指南中文版
  8. Spring配置dataSource的三种方式 数据库连接池
  9. 修改yum源为阿里云的
  10. 【BZOJ2836】魔法树 树链剖分