剑指offer JavaScript版 (49)

把字符串转换成整数

题目描述

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

  • 重点在于每次需要移位,移位对应十进制是10,对应二进制是1010,所以移一位,再移三位。
  • 注意还需要判断符号
function StrToInt(str)
{
    // write code here
    let res=0;
    let flag=1;
    var n=str.length;
    if(!n)return 0;
    if(str[0]=='-'){
        flag=-1;
    }
    for(var i= str[0]=='-'||str[0]=='+'?1:0;i<n;i++){
        if(str[i]<='0'||str[i]>='9')return 0;
        res=(res<<1)+(res<<3)+(str[i]-'0')
    }
    return res*flag;
}
发布了93 篇原创文章 · 获赞 3 · 访问量 2490

猜你喜欢

转载自blog.csdn.net/Damp_XUN/article/details/99197896