Implement atoi to convert a string to an integer.
- 题目大意
题目描述非常简单,就是实现c语言中的atoi 函数。这个函数是将一个字符串转成一个int 整数。
首先分析一下atoi这个函数的几个特性:
- 该函数会跳过所有该字符串开头的空格
- 该函数会忽略第一个非数字字符后面的所有字符。
- 返回的是一个int 类型 (-2147483648 ~ 2147483647)
有了以上分析,代码就非常简单了
/**
* @param {string} str
* @return {number}
*/
var myAtoi = function (str) {
let i = 0;
let ans = 0;
while (str[i] === ' ' && i < str.length) { //忽略所有开头的空格
i++;
}
if (i >= str.length) return ans;
let sign = 1;
if (str[i] === '+') { //判断符号
sign = 1;
i++;
}
else {
if (str[i] === '-') {
sign = -1;
i++;
}
}
while (i < str.length && str[i] >= '0' && str[i] <= '9') { //遍历所有数字位
ans = +str[i++] + ans * 10;
}
ans *= sign;
ans = ans > 2147483647 ? 2147483647 : ans; //使结果在整形范围内
ans = ans < -2147483648 ? -2147483648 : ans;
return ans;
};