|
|
|
|
|
|
T*****n 发帖数: 82 | 1 String to Integer (atoi) 这一题
通过的code是:
public class Solution {
public int myAtoi(String str) {
if (str == null || str.length() < 1)
return 0;
// trim white spaces
str = str.trim();
char flag = '+';
// check negative or positive
int i = 0;
if (str.charAt(0) == '-') {
flag = '-';
i++;
} else if (str.charAt(0) == '+') {
i++;
}
// use double to store result
double result = 0;
// calculate value
while (str.length() > i && str.charAt(i) >= '0' && str.charAt(i) <= '9')
{
result = result * 10 + (str.charAt(i) - '0');
i++;
}
if (flag == '-')
result = -result;
// handle max and min
if (result > Integer.MAX_VALUE)
return Integer.MAX_VALUE;
if (result < Integer.MIN_VALUE)
return Integer.MIN_VALUE;
return (int) result;
}
}
没通过的code是
public class Solution {
public int myAtoi(String str) {
if(str == null || str.length() < 1)
return 0;
str.trim();
char flag = '+';
int i = 0;
if(str.charAt(0) == '-'){
flag = '-';
i++;
}else if (str.charAt(i) == '+'){
i++;
}
double result = 0;
while(str.length() > i && str.charAt(i) >= '0' && str.charAt(i) <= '
9'){
result = result * 10 + (str.charAt(i) - '0') ;
i++;
}
if (flag == '-')
result = -result;
if(result > Integer.MAX_VALUE)
return Integer.MAX_VALUE;
if(result < Integer.MIN_VALUE)
return Integer.MIN_VALUE;
return (int) result;
}
}
报出的结果是
Submission Result: Wrong AnswerMore Details
Input:
" 010"
Output:
0
Expected:
10
我一行一行比较看也没看出两段code有何区别,看得眼花了。求大牛指点! | m*****n 发帖数: 204 | 2 眼神不太好啊。 8-)
比较一下trim那行。
【在 T*****n 的大作中提到】 : String to Integer (atoi) 这一题 : 通过的code是: : public class Solution { : public int myAtoi(String str) { : if (str == null || str.length() < 1) : return 0; : // trim white spaces : str = str.trim(); : char flag = '+'; : // check negative or positive
| T*****n 发帖数: 82 | 3 多谢!多谢!刷的有点神志不清了。。。
【在 m*****n 的大作中提到】 : 眼神不太好啊。 8-) : 比较一下trim那行。
|
|
|
|
|
|