8. 字符串转换整数 (atoi)

 

 

class Solution {
    public int myAtoi(String str) {
        str = str.trim();
        int n = str.length();
        if(n == 0) return 0;
        char[] arr = str.toCharArray();
        int atoi = 1, k = 1; // atoi记录符号,k记录遍历起点
        if(arr[0] == '-') {
            atoi = -1;
        } else if(arr[0] != '+') { // 注意这里 这个判断可以确定起点
            k = 0;
        }
        long res = 0; // 防止溢出
        for(int i = k; i < n; i++) {
            if(arr[i] < '0' || arr[i] > '9') break;
            res = res * 10 + (arr[i] - '0');
            // 是>不是>=
            if(res > Integer.MAX_VALUE) return atoi == -1 ? Integer.MIN_VALUE : Integer.MAX_VALUE;
        }
        return (int)(atoi*res);
    }
}

 

posted @ 2020-07-08 20:36  Sexyomaru  阅读(172)  评论(0)    收藏  举报