讨论/《初级算法》 - 字符串转换整数 (atoi)/
《初级算法》 - 字符串转换整数 (atoi)
class Solution {
    public int myAtoi(String s) {
        char[] arr = s.toCharArray();
        int idx = 0, len = arr.length, symbol = 1;
        long  res = 0;
        //丢弃前导空格
        while (idx < len && arr[idx] == ' ') idx++;
        if (idx >= len) return (int)res;
        //判断正负符号
        if (arr[idx] == '-') {
            idx++;
            symbol = -1;
        } else if (arr[idx] == '+') {
            idx++;
            symbol = 1;
        } else if (!('0' <= arr[idx] && arr[idx] <= '9')) {
            return (int)res;

        }
        //去除高位0
        while (idx < len && arr[idx] == '0') idx++;
        while (idx < len && '0' <= arr[idx] && arr[idx] <= '9') {
            res = res * 10 + symbol * (arr[idx] - '0');
            idx++;
            if (res >= Integer.MAX_VALUE || symbol == 1 && res < 0) {
                res = Integer.MAX_VALUE;
                break;
            }
            if (res <= Integer.MIN_VALUE || symbol == -1 && res > 0) {
                res = Integer.MIN_VALUE;
                break;
            }
        }
        return (int)res;
    }
}

image.png

展开全部 37 讨论