第十六天:力扣第8题,字符串转换整数 (atoi)
地址:leetcode-cn.com/problems/st…
思路:一开始是傻瓜思路,别看,就图一乐,真学技术看最后面的。
var myAtoi = function(s) {
s = s.split("");
let a = [];
for (let i = 0,j = 0;i < s.length; i++,j++)
{
if(s[i]!=" ")
{
a[j]=s[i];
}
else{
j--;
}
}
let c = "2147483648";
let b = [];
let flag = 0;
let flag2 = 0;
if(a[0]=='-'||a[0]=="+"||(a[0]<=9&&a[0]>=0))
{
for(let i = 0,j = 0;i < a.length; i++,j++)
{
if((i==0&&a[0]=='-')||(i==0&&a[0]=='+'))
{
flag = 1;
i=i+1;
if(a[1]<=9&&a[1]>=0)
{}
else{
return 0;
}
}
if(a[i]<=9&&a[i]>0)
{
b[j]=a[i];
flag2 = 1;
}
else if (a[i]==0&&flag2==1)
{
b[j]=a[i];
}
else if(a[i]==0&&flag2==0)
{
j--;
}
else{
if(flag2==0)
{
return 0;
}
else
{
break;
}
}
}
if(flag == 0)
{
if(b.length > 10)
{
return 2147483647;
}
else if (b.length < 10)
{
return b.join("");
}
else{
if(b.join("")>'2147483647')
{
return 2147483647;
}
else{
return b.join("");
}
}
}
else{
if(a[0]=="-")
{
if(b.length > 10)
{
return "-2147483648";
}
else if (b.length < 10)
{
return "-"+b.join("");
}
else{
if(b.join("")>'2147483648')
{
return "-2147483648";
}
else{
return "-"+b.join("");
}
}
}
else{
if(b.length > 10)
{
return "2147483647";
}
else if (b.length < 10)
{
return b.join("");
}
else{
if(b.join("")>'2147483647')
{
return "2147483647";
}
else{
return b.join("");
}
}
}
}
}
else
{
return 0;
}
};
贴个真大佬的代码:
var myAtoi = function(str, n) {
return (n = Math.pow(2, 31)) && Math.min(Math.max(parseInt(str) || 0, -n), --n)
};
就是parseInt方法,mmp.