【leetcode】5 atoi

考虑几点:

1 字符串首端是空格

2 正负号

3 溢出

INT_MAX (2147483647)

INT_MIN (-2147483648) 

4 题目测试案例中没有考虑非字符串的情况

5 最好是char* str而不是string

int myAtoi(char* str) {
   
        if(*str==NULL)
            return 0;
        while(*str==' ')
            str++;
        int sig=1;
        if(*str=='-'){
            sig=-1;
            str++;
        }else if(*str=='+')
            str++;
        long long rest=0;
        while(*str>='0' && *str<='9'){
             rest=rest*10+(*str-'0');
            if(rest > INT_MAX)
                return sig == 1 ? INT_MAX : INT_MIN; 
            str++;
        }
      
        return (int)(sig*rest);
}

原文地址:https://www.cnblogs.com/wygyxrssxz/p/4493000.html