面试题:把字符串转化成整数

题意:

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

代码:

我的

class Solution {
public:
	bool isValue(string str)
	{
		if (str[0] == '+')
		{
			for (int i = 1; i'9')
					return false;
			}
			return true;
		}
		else if (str[0] == '-')
		{
			for (int i = 1; i'9')
					return false;
			}
			return true;
		}
		for (int i = 0; i'9')
				return false;
		}
		return true;
	}
	int StrToInt(string str) {
		if (isValue(str))
		{
			int num = 0;
			int flag = 1;
			for (int i = 0; i

别人的:

class Solution
{
public:
	int StrToInt(string str) {
		int flag = 1;
		int num = 0;
		if (str.size() == 0) return 0;
		if (str[0] == '-') flag = -1;
		for (int i = (str[0] == '+' || str[0] == '-') ? 1 : 0; i < str.size(); i++)
		{
			if (!(str[i] >= '0' && str[i] <= '9')) return 0;
			num = num * 10 + str[i] - '0';
		}
		return num*flag;
	}
};

 

你可能感兴趣的:(剑指offer)