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

代码

class Solution {
    public int myAtoi(String str) {
        char[] chars = str.toCharArray();
        int n = str.length();
        int idx = 0;

        while (idx < n && chars[idx] == ' ') idx++;
        if (idx == n) return 0;
        boolean flag = false;
        if (chars[idx] == '-') {
            flag = true;
            idx++;
        } else if (chars[idx] == '+') {
            idx++;
        } else if (!Character.isDigit(chars[idx])) {
            return 0;
        }

        int ans = 0;
        while (idx < n && Character.isDigit(chars[idx])) {
            int digit = chars[idx] - '0';
            if (ans > (Integer.MAX_VALUE - digit) / 10) {
                return flag ? Integer.MIN_VALUE : Integer.MAX_VALUE;
            }
            ans = ans * 10 + digit;
            idx++;
        }
        return flag ? -ans : ans;
    }
}
posted @ 2020-06-02 16:00  景云ⁿ  阅读(114)  评论(0编辑  收藏  举报