对于这个问题,他们提供了你必须填写的框架代码:
public int reverse(int x) {
}
Run Code Online (Sandbox Code Playgroud)
在测试解决方案时,它似乎提供了不合理的输入,并且不允许我提交我的解决方案。错误是:
请注意,输入是1534236469. 这适合作为int输入,但相反的版本,自然不适合,因为Java 中9646324351an 的最大正值是。int2147483647
这只是LeetCode测试中的一个错误吗?或者是否有一些我无法想象的技巧可以神奇地让我返回9646324351一个明显超出范围的值,从reverse作为一个返回int?
这是我的代码,但代码几乎无关紧要,因为返回类型 ( int) 是由问题固定的(因此“整数”的真正意思是int,而不是long):
public int reverse(int x) {
String intString;
StringBuilder sb = new StringBuilder();
if(x < 0){
sb.append("-");
x = x * -1;
}
intString = Integer.toString(x);
for(int i = intString.length() - 1; i >= 0; i--){
sb.append(intString.charAt(i));
}
String resultString = sb.toString();
int result = Integer.parseInt(resultString);
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是 LeetCode 测试中的一个错误。根本无法将他们要求的返回值存储在 中int,因此无法根据reverse提供的框架代码返回它。
也许测试用例是在 的整个范围内随机生成的int,没有考虑到某些输入的reverse值可能会超出范围。int
事实证明,0如果反转的数字超出范围,他们希望您返回。他们并不是在问题的任何地方都懒得提及这一点。
| 归档时间: |
|
| 查看次数: |
5196 次 |
| 最近记录: |