String

var myAtoi = function (str) {
	const len = str.length,
		max = 2 ** 31 - 1,
		min = -(2 ** 31)
	let ret = 0,
		flag = 1,
		idx = 0
	while (idx < len && str[idx] === ' ') idx++
	if (str[idx] === '+' || str[idx] === '-') {
		flag = str[idx] === '+' ? 1 : -1
		idx++
	}
	while (idx < len && !Number.isNaN(parseInt(str[idx], 10))) {
		ret = ret * 10 + +str[idx]
		idx++
	}
	if (ret > max || ret < min) return flag === 1 ? max : min
	return flag * ret
}

Last updated