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);
    }
}
全部评论
同样遇到这个问题,官方不出来处理下吗???
点赞 回复 分享
发布于 2020-06-16 20:38

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务