题目描述
实现 atoi 函数,将以字符串(string)形式表示的整数,转换成整型(int)。
aoti 函数需要满足的条件:
忽略所有行首空格,找到第一个非空格字符,可以是 ‘+/−+/−’ 表示是正数或者负数,紧随其后找到最长的一串连续数字,将其解析成一个整数;
整数后可能有任意非数字字符,请将其忽略;
从前往后遍历时,如果第一段连续数字为空,则返回0;
如果整数大于INT_MAX,请返回int_MAX;如果整数小于INT_MIN,请返回INT_MIN;
算法
正则表达式
js 代码
/**
* @param {string} s
* @return {number}
*/
var myAtoi = function(s) {
const int_max = 2 ** 31 - 1
const int_min = -(2**31)
// 去除前导空格
s = s.trimLeft()
let arr = s.match(/^[+-]?\d+/)
// match()返回的是一个数组,下标0保存匹配的结果,如果没有匹配项则返回null
if(arr == null) return 0
else if(Number(arr[0]) < int_min) return int_min
else if(Number(arr[0]) > int_max) return int_max
return Number(arr[0])
};