【牛客题解】 ——把字符串转换成整数

在这里插入图片描述
这道题很简单,我昨天写的时候,没注意越界,第一次写用例只通过百分之八十五,我的天,查个越界查一个小时,算了,做出来就好,特别注意的是要先声明res为long long类型,不然就会越界

思路:从后向前遍历字符串,直到遍历到str[0]停止,再单独判断str[0]
class Solution {
public:
    int StrToInt(string str) 
    {
        long long res = 0;
		int n = 0;
		if (str == "")
			return 0;
		for (int i = str.size() - 1; i > 0; i--)
		{
			if (!(str[i] >= '0'&&str[i] <= '9'))
				return 0;
			else
			{
				res += ((str[i] - '0')*pow(10, n));
				n++;
			}
		}
		if (str[0] == '+')
		{
			if (res> INT_MAX)
				return 0;
			else
				return res;
		}
		else if (str[0] == '-')
		{
			if (-res < INT_MIN)
				return 0;
			else
				return -res;
		}
		else if (str[0] >= '0'&&str[0] <= '9')
		{
			res += ((str[0] - '0')*pow(10, n));
			if (res < INT_MAX)
				return res;
			else
				return 0;
		}
		else
			return 0;
    }
};

原创文章 78 获赞 21 访问量 3533

猜你喜欢

转载自blog.csdn.net/Vicky_Cr/article/details/105630851