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

关于string转整数

时间:2016-09-17 21:54:03      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

又是leetcode的easy级别题,很基本的题目,却漏考虑很多情况,动手前一定要考虑清楚呀!!!

就当做锻炼写作能力吧,先上题目!

技术分享

将文本转换成整数,注意一下几点:

1.文本里面第一个不为空白的字符应该为数字或‘+’、‘-’,否则返回0;

2.文本中数字后面的文本不影响结果;

3.转换后的值若超过了int的最值应返回最值。

上代码吧!

class Solution {
public:
	int myAtoi(string str) {
		int start = 0;
		for (int i = 0; i!= str.length(); i++)
		{
			if (str[i] == ‘ ‘)
				start++;
			else
				break;
		}
		if(start>=str.length())
		    return 0;
		    
		int p = 0,t=0;
		if (str[start] == ‘-‘)
		{
			start++;
			p = 1;
		}
		else if (str[start] == ‘+‘)
			start++;
		for (; start <str.length(); start++)
		{
			
			char m = str[start] - ‘0‘;
			if (m >= 0 && m <= 9)
			{
			    if(t>INT_MAX/10)
			        if(p==0)
			            return INT_MAX;
			        else
			            return INT_MIN;
		    	t *= 10;
			        if(p==0&&t>INT_MAX-m)
			            return INT_MAX;
			        else if(p!=0&&-t<(INT_MIN+m))
			            return INT_MIN;
				t += m;
			}
			else
				break;
		}
		return p==0?t:-t;
	}
};

 

关于string转整数

标签:

原文地址:http://www.cnblogs.com/Rainlee007/p/5879706.html

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