题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输入
+2147483647
1a33
输出
2147483647
0
代码
思路:递归,
function StrToInt(str)
{
// write code here
if(str==null || str.length<=0) return 0;
var len=str.length,index=0,flag=false;
var arr=str.split('')
if(arr[0]=='+'){
index++
}else if(arr[0]=='-'){
flag=true
index++
}
var num=strToIntCore(arr,index,len,flag)
return num;
}
function strToIntCore(arr,start,length,minus){
var number=0;
if(arr==null||start>=length) return number;
while(start<length){
if(arr[start]>='0'&& arr[start]<='9'){
var flag=minus?-1:1;
number=number*10+(arr[start]-'0')*flag
start++
}else{
number=0;
break;
}
}
return number;
}