剑指offer

把字符串转换成整数

问题描述:

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

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

输出描述:如果是合法的数值表达则返回该数字,否则返回 0

输入

+2147483647

1a33

输出

2147483647

0

function StrToInt(str) {
  // write code here
  var obj = {
    "1": 1,
    "2": 2,
    "3": 3,
    "4": 4,
    "5": 5,
    "6": 6,
    "7": 7,
    "8": 8,
    "9": 9,
    "0": 0,
    "-": -1,
    "+": 1,
  };
  for (let i = 0; i < str.length; i++) {
    if (!obj[str[i]]) {
      return 0;
    }
  }
  if (str === "+" || str === "-") return 0;
  var num = str / 1;
  if (num === -2147483649 || num === 2147483648) {
    return 0;
  }
  return num;
}
原文地址:https://www.cnblogs.com/muzidaitou/p/12723656.html