leetcode每日一题——反转整数
2024-09-27 15:10:54
- 题目:
反转整数
- 难度:
简单
- 描述:
给定一个 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值,如果存在负数情况,千万不能直接用“-”号取反得到正数结果,因为负数最小值取绝对值比正数的最大值还要大。
最新文章
- scala中的面向对象定义类,构造函数,继承
- iOS push与present Controller的区别
- [iOS] 使用xib作为应用程序入口 with IDE
- JavaWeb项目开发案例精粹-第2章投票系统-002配置文件及公共类
- 三星S4使用体验(Markdown版)
- I2C Verilog的实现(二)
- html input 文本框的一些操作(限制输入...)
- PermGen space错误解决方法
- c语言函数定义、函数声明、函数调用以及extern跨文件的变量引用
- 解决android开发webservice的发布与数据库连接的问题
- android Animation动画的xml使用
- git cherry-pick 整理
- (七十四)iOS8之前使socket可以后台运行的方法
- redis 慢日志查询
- eclipse打包java项目
- 修改Windows server 时间同步
- ESXI6时间源快速同步
- php 排列组合函数(无重复组合,可重复组合【全排列组合】)
- enumerate()函数用法
- hibernate validate