题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0
示例1

输入

复制
+2147483647
1a33

输出

复制
2147483647

 

题目链接:

https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&rp=1&ru=/activity/oj&qru=/ta/coding-interviews/question-ranking

 

 

未AC。

用例存在错误。

不通过
您的代码已保存
答案错误:您提交的程序没有通过所有的测试用例点击对比用例标准输出与你的输出
case通过率为85.71%

用例:
-2147483649

对应输出应该为:

-2147483649
 
 
int的最小值为

-2147483648

public class Solution {
        public int StrToInt(String str) {
            if("".equals(str)){
                return 0;
            }
            char[] arr = str.toCharArray();
            int number = 0;
            boolean flag = true;
            for(int i =0;i<arr.length;i++){
                if(i == 0 &&(arr[i] == '-' ||arr[i] == '+')){
                    if(arr[i] == '-'){
                        flag = false;
                    }else if(arr[i] == '+'){

                    }else {
                        return 0;
                    }
                }else if(arr[i] <= '9' && arr[i] >= '0'){
                    number = number * 10 + (arr[i]-'0');
                }else{
                    return 0;
                }
            }

            if(str.charAt(0) == '+' || str.charAt(0) == '-'){
                if(!str.substring(1).equals(""+number)&& number != -2147483648){
                    return 0;
                }
            }else if(!str.equals(""+number)){
                return 0;
            }

            return flag?number:(-number);
        }
    }

 

 

 

 

posted on 2020-06-10 00:41  MoonBeautiful  阅读(137)  评论(0编辑  收藏  举报