[8] 字符串转换整数 (atoi)

发布时间 2023-11-22 16:46:31作者: 人恒过
/**
 * @param {string} s
 * @return {number}
 */
var myAtoi = function (s) {
  // 正负号默认为正
  let res = 0;
  let negativeSymbol = 1;
  s = s.trim();

  for (let i = 0; i < s.length; i++) {
    if (i == 0 && s[i] == "-") {
      negativeSymbol = -1;
      continue;
    } else if (i == 0 && s[i] == "+") {
      negativeSymbol = 1;
      continue;
    }

    // 如果为数据,且不为空格,如果遇到空格,就终止循环。
    if (s[i] >= 0 && s[i] <= 9 && s[i] != " ") {
      res = res * 10 + (s[i] - '0');  // 注意将字符转换成数字
    } else break;

    // 进行数据范围判断
    if (res * negativeSymbol <= -2147483648) return -2147483648;
    else if (res * negativeSymbol >= 2147483647) return 2147483647;
  }
  return res * negativeSymbol;
};