LeetCode 每日一题。
Example1: x = 123,return 321
Example2: x = -123,return -321
点击显示扰流板。
你有没有想过这个?
以下是编码前要问的一些好问题。如果您已经考虑过这一点,您的奖励积分!
如果整数的最后一位是0,输出应该是多少?即,例如10,100。
你注意到反转的整数可能会溢出吗?假设输入是一个32位整数,则1000000003的倒数溢出。你应该如何处理这种情况?
为了这个问题的目的,假设当反转的整数溢出时,你的函数返回0。
注意:
输入假定为32位有符号整数。当反转的整数溢出时,您的函数应返回0。**
@Test
public void test() {
System.out.println(reveser(100000003));
}
public int reveser(int x) {
String value = String.valueOf(x);
char[] s = new char[value.length()];
boolean flag = false;
int i = 0;
for (int j = value.length() - 1; j >= 0; j--) {
char c = value.charAt(j);
if(c == '-') {
flag = true;
continue;
}else {
s[i++] = c;
}
}
String newString = flag ? "-" : "";
try {
int lenth = newString.equals("-") ? s.length - 1 : s.length;
for (int q = 0; q < lenth; q++) {
newString+=s[q];
}
return Integer.parseInt(newString);
} catch (NumberFormatException e) {
return 0;
}
}
思路:如果数值溢出,则返回0 那我们就使用try catch方法来做返回操作啦。如果输入的数值大于整数的最大值,也就是Integer.MAX_VAL 那我们就返回0 否则返回反过来后的整数或负数 运行时间略快!