时间限制:1秒空间限制:32768K热度指数:5997
本题知识点:字符串
**算法知识视频讲解
题目描述
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647
1a33
输出例子:
2147483647
0
题解:先判断第一位,再遍历字符串,若不为数字,则break;
否则继续加
代码如下:
class Solution {
public:
int StrToInt(string str) {
if(str.size()==0)return 0;
int flag=1;
if(str[0]=='-'){
flag=-1;
str[0]='0';
}else if(str[0]=='+'){
flag=1;
str[0]='0';
}
long long sum=0;
for(int i=0;i<str.size();++i){
if(str[i]<'0'||str[i]>'9'){
sum=0;
break;
}else{
sum=sum*10+str[i]-'0';
}
}
return flag*sum;
}
};