这题用js实现感觉是个BUG...

碎碎念

先回顾一下parseInt吧。

  1. 传入一个整数时,返回这个整数。
  2. 传入一个小数时,舍弃小数部分,返回整数。(舍弃,非四舍五入)
  3. ....有空接着写

解题思路

  1. 使用parseInt尝试转换s
  2. 如果转出来的是NaN 那按题意,返回0
  3. 判断是否大于231 - 1 大于就返回231 - 1
  4. 判断是否小于-231 小于就返回-231
  5. 以上都不成立,那就返回转换结果(ans)喽~
function myAtoi(s: string): number {
  const ans = parseInt(s)
  if (isNaN(ans)) return 0

  const max = Math.pow(2, 31) - 1
  if (ans >= max) return max
  const min = Math.pow(-2, 31)
  if (ans <= min) return min
  return ans
}