首页 > 其他 > 详细

【leetcode】5 atoi

时间:2015-05-10 22:06:44      阅读:268      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!