首页 > 其他 > 详细

[leetcode]String to Integer (atoi)

时间:2015-10-20 21:08:51      阅读:250      评论:0      收藏:0      [点我收藏+]
技术分享
class Solution {
public:
    int myAtoi(string str) {
        long long sum = 0;
        int temp1 = 1;
        int max1 = 0x7fffffff;  
        int min1 = 0x80000000;  
        if(str.length() == 0 ) return 0;
        int k = 0;
        while(str[k] ==  )
        {
            k++;
        }
        if(str[k] == -) {temp1=-1;k++;}
        else if(str[k] == +) {k++;}
        
        for(int i = k ; i < str.length(); i++)
        {
            
            if(str[i] >= 0 && str[i] <= 9)
            {
                 sum = sum*10 + (str[i]-0);
                 if(sum > max1 || sum < min1)    
                 {
                    if(temp1 == -1)
                     {
                         return min1;
                     }
                    return max1;
                }
           }
            else break;
        }
        sum *= temp1;
        return (int)sum;
    }
};
View Code

String to Integer (atoi) 

这题是我做的比较麻烦的一道题。要考虑:

1、溢出

2、开头只能+ - 之后如果出现+ - 则错误。

3、空格考虑。

4、以及你定义的sum能否装得下溢出,因为要判断是否超过最大最小值。

总之,考虑的挺全。很锻炼人。面试必备啊简直

[leetcode]String to Integer (atoi)

原文:http://www.cnblogs.com/yusenwu/p/4896004.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!