大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn
7. 整数反转 😁
题目描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
分析
很奇怪,这道题的题解居然很少人用到强大的异常处理机制,题目在转换中可能超出Integer
的范围,这时就会抛出异常,那我们捕获异常不就轻轻松松解决了嘛😀
public int reverse(int x) {
try{
boolean fu = false;
if(x<0){ // 如果为负数,那么标记一下
fu = true;
x *= -1;
}
StringBuilder sb = new StringBuilder(Integer.toString(x)); //直接调用StringBuilder的反转,偷偷懒😀
x = Integer.parseInt(sb.reverse().toString());
if(fu)
x *= -1; // 如果是负数最好还得还原成负数
}catch(Exception e){ // 捕获异常,按照题目要求,返回0
return 0;
}
return x;
}
提交结果
2020年9月24日更
大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn