问题描述:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
解决思路:
深海一看这到题,第一个想法就是String反转,第二个想法就是StringBuffer循环添加。
1.首先排除特殊情况:0,因为0反转后还是0;
2.拿出 int负数转String后的“-”符号,将它装入StringBuffer的底部;
3.从后往前的顺序,将int转Sring的结果依次装入StringBuffer中
4.主意:最终return的时候要try一下异常,因为得出的结果可能会超出int的位数
/*
*作者:赵星海
*时间:2020/7/24 14:14
*用途:整数反转
*/
private int reverse(int x) {
if (x == 0) return 0;
String s = new Integer(x).toString();
StringBuffer resultBuffer = new StringBuffer();
if (x < 0) {
s = s.substring(1, s.length());
resultBuffer.append("-");
}
int length = s.length();
for (int i = length; i > 0; i--) {
resultBuffer.append(s.charAt(i - 1) + "");
}
try {
return Integer.parseInt(resultBuffer.toString().trim());
} catch (Exception e) {
return 0;
}
}
如转载,请注明出处。毕竟,深海的访问量太少了。。。。