【LeetCode】 008. String to Integer (atoi)

来源:互联网 发布:手机二维码扫描软件 编辑:程序博客网 时间:2024/05/21 13:56

Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

public class Solution {    public int myAtoi(String str) {        if (str == null || str.isEmpty()) {            return 0;        }        str = str.trim();        int sign = 1, i = 0;        if (str.charAt(0) == '+' || str.charAt(0) == '-') {            sign = str.charAt(0) == '+' ? 1 : -1;            i++;        }        int res = 0;        int maxValueDigit = Integer.MAX_VALUE % 10;        while (i < str.length()) {            int digit = str.charAt(i) - '0';            if (digit < 0 || digit > 9) {                break;            }            if (res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && digit > maxValueDigit)) {                return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;            }            res = res * 10 + digit;            i++;        }    return sign * res;    }}


0 0