【leetCode】8_字符串转整数

class Solution {
    public int myAtoi(String str) {
        int tag = 1;
        int ans = 0;
        int i = 0;
        if (str.isEmpty())
            return 0;
        while (str.charAt(i) == ' '){
            i ++;
            if (i >= str.length())
                return 0;
        }
        if (str.charAt(i) == '-' || str.charAt(i) == '+' || (str.charAt(i) >= '0' && str.charAt(i) <= '9')){
            if (str.charAt(i) == '+' || str.charAt(i) == '-' ){
                if (str.charAt(i) == '-')
                    tag = -1;
                i ++;
            }
            if (i >= str.length())
                return 0;
            while(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                int t = ans;
                ans *= 10;
                if (ans / 10 != t)
                    return tag > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
                ans += tag * (str.charAt(i) - '0');
                if (ans * tag < 0){
                    return tag >0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
                }
                i ++;
                if (i >= str.length())
                    break;
            }
            return ans;
        }
        return 0;
    }
}

 

你可能感兴趣的:(leetCode)