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

String to Integer (atoi)

时间:2015-01-01 19:46:00      阅读:196      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!