剑指offer(49)把字符串转换成整数。

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0

 

题目分析

这种题经常考,就是要求不使用库函数,要自己去写。

这种题需要我们对库函数的实现原理有比较深的了解,有些题会很难,考察对基础的掌握程度。

不过这道题比较简单。

 

代码

function StrToInt(str) {
  let res = 0,
    flag = 1;
  const n = str.length;
  if (!n) return 0;
  if (str[0] === '-') {
    flag = -1;
  }
  for (let 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;
}

 

posted @ 2018-04-18 13:25  汕大小吴  阅读(743)  评论(0编辑  收藏  举报