【剑指offer】049-把字符串转换成整数

题目

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

思路

方法:

  1. 判断正负
  2. 循环判断合法字符
  3. *10 + 该位的大小

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function StrToInt (str{
  // write code here
  if (!str || !str.length) return 0
  let result = 0
  let native = false
  for (let i = 0; i < str.length; i++) {
    let item = str[i]
    if (i === 0 && item === '+') {
      native = false
    } else if (i === 0 && item === '-') {
      native = true
    } else if (!isNaN(item)) {
      result *= 10
      result += Number(item)
    } else {
      return 0
    }
  }
  return native ? -result : result
}
文章作者: ptp
文章链接: https://youyingjie114.github.io/2019/11/07/jz-offer/jz-offer-049/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PTP'S BLOG