首页 > 其他 > 详细

String to Integer (atoi)

时间:2015-01-01 19:45:54      阅读:266      评论:0      收藏:0      [点我收藏+]

这道题知道了用long long 这种变量类型,从最初的128ms优化到68ms

代码如下:

class Solution {
public:
    int atoi(const char *str) {
        if(str == NULL)
		return 0;
		int i=0;
		int flag =1;
	
		string tempstr;

		while(str[i] != ‘\0‘)
		{
           if(str[i] == ‘ ‘)
		   	 i++;
		   else
		   	 break;
		}
	
		if(str[i] == ‘-‘)
		{
           flag =-1;
		   i++;
		}
		else if(str[i] == ‘+‘)
		{
		   i++;
		}
		while(str[i] != ‘\0‘)
		{
           if(str[i] == ‘0‘)
		   	 i++;
		   else
		   	 break;
		}  
		long long data = 0;
		while(str[i] != ‘\0‘)
		{
		  if(str[i]>=‘0‘ && str[i]<=‘9‘)
		  {
          
			data = data * 10 + flag * (str[i]- ‘0‘);	
			if(flag > 0 && data > numeric_limits<int>::max())
			 return numeric_limits<int>::max();
			if(flag < 0 && data < numeric_limits<int>::min())
			 return numeric_limits<int>::min();
		  }
		  else
		  {
             break;
		  }

          i++;
		}
		
		
        return data;
		
        
    }
};

  

String to Integer (atoi)

原文:http://www.cnblogs.com/xgcode/p/4197451.html

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