1.解题注意点:
(1)首先,要注意到最大值和最小值的返回问题,根据题目的需要来选择。
(2)接着,就是如何解决空格等问题(在开头设置一个描点,然后来判断“+”,“-”)
(3) 然后除去其他的符号的情况,判断是否在0-9,如果不是的话,break;
2.上代码:
/**
* @param {string} str
* @return {number}
*/
var myAtoi = function(str) {
const max= 0x7fffffff;
const min =-0x80000000;
var flag = false;
var st = 0;
var ans = 0;
var x = 0;
while(str.length>0 && str[st] ==' ')
{
st++;
}
if(str.length>0 && str[st] =='+')
{
st++;
}else{
if(str.length>0 && str[st]=='-')
{
flag = true;
st++;
}
}
// console.log(st);
for(let i = st;i<str.length;i++)
{
if(str[i]<='9'&&str[i]>='0')
{
x = str[i]-'0';
ans = ans*10 +x;
}else{
break;
}
}
if(flag){ans = -ans}
if(ans>max){return max}
if(ans<min){return min}
return ans;
}