码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】5 atoi

时间:2015-05-10 22:08:46      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

考虑几点:

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);
}

【leetcode】5 atoi

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!