众所周知,Java的整型变量int只有32位,所能表示的
- 最大为Integer.MAX_VALUE=2147483647=2^31-1,
- 最小为Integer.MIN_VALUE=-2147483648=-2^31。
然而测试用例中有一个 -2147483649=Integer.MIN_VALUE-1。
要求返回类型依然是int,恕在下才疏学浅,这个测试用例我真是无能为力...
代码只能给您写成这样了。
public class Solution {
public int StrToInt(String str) {
if(str==null||str.length()==0) return 0;
int i=0;
int symbol=1;
if(str.charAt(0)=='+') i++;
else if (str.charAt(0)=='-') {i++; symbol=-symbol;}
long ans=0;
for(int j=i; j<str.length(); j++){
char c=str.charAt(j);
if(c<'0'||c>'9') return 0;
ans=ans*10+c-'0';
}
return (int) (symbol*ans);
}
}


京公网安备 11010502036488号