JZ49 把字符串转换成整数,测试用例int -2147483649???
把字符串转换成整数
http://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
众所周知,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); } }