8. String to Integer (atoi)

class Solution {
    public int myAtoi(String str) {
        if (str == null || str.length() == 0) return 0;
        str = str.trim();
        if (str.charAt(0) != '+' && str.charAt(0) != '-' && (str.charAt(0) < '0' || str.charAt(0) > '9')) return 0;
        int flag = 1, tracker = 0;
        if (str.charAt(tracker) == '+'){
            tracker++;
        }
        else if (str.charAt(tracker) == '-'){
            flag = -1;
            tracker++;
        }

        long ans = 0;
        while (tracker < str.length()){
            char cur = str.charAt(tracker);
            if (cur < '0' || cur > '9') break;
            int num = cur - '0';
            ans = ans * 10 + num;
            if (ans * flag > Integer.MAX_VALUE) return Integer.MAX_VALUE * flag;
            if (ans * flag < Integer.MIN_VALUE) return Integer.MIN_VALUE * flag;
            tracker++;
        }

        System.out.println("ans: " + ans + " flag: " + flag);
        ans = ans * flag;


        return (int)ans;
    }
}

results for ""

    No results matching ""