赞
踩
题意:
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
代码:
我的
- class Solution {
- public:
- bool isValue(string str)
- {
- if (str[0] == '+')
- {
- for (int i = 1; i<str.size(); i++)
- {
- if (str[i]<'0' || str[i]>'9')
- return false;
- }
- return true;
- }
- else if (str[0] == '-')
- {
- for (int i = 1; i<str.size(); i++)
- {
- if (str[i]<'0' || str[i]>'9')
- return false;
- }
- return true;
- }
- for (int i = 0; i<str.size(); i++)
- {
- if (str[i]<'0' || str[i]>'9')
- return false;
- }
- return true;
- }
- int StrToInt(string str) {
- if (isValue(str))
- {
- int num = 0;
- int flag = 1;
- for (int i = 0; i<str.size(); i++)
- {
- if (str[i] == '+')
- flag = 1;
- else if (str[i] == '-')
- flag = -1;
- else
- num = num * 10 + str[i] - '0';
- }
- return num*flag;
- }
- return 0;
- }
- };
别人的:
- 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;
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。