我的回答(没写出来)
function myAtoi(s: string): number {
s = s.trim();
const charList = new Array(10).fill(0).map((_, i) => String(i));
let res = 0;
if (s[0] !== "-" && s[0] !== "+" && +s[0] === null) return 0;
for (let i = 0; i < s.length; i++) {
if (charList.includes(s[i])) {
res = res * 10 + +s[i];
} else if (!s[i]) {
continue;
} else {
break;
}
}
return s[0] !== "-" ? -res : res;
}
console.log(myAtoi(" -42"));
其他回答
function myAtoi(s: string): number {
const r = parseInt(s);
const min = Math.pow(-2, 31);
const max = Math.pow(2, 31) - 1;
if (isNaN(r)) {
return 0;
} else if (r < min) {
return min;
} else if (r > max) {
return max;
} else {
return r;
}
}
console.log(myAtoi("21474836460"));