原题链接
typescript
function myAtoi(s: string): number {
s = s.trim();
const max = (2 ** 31) - 1;
const min = -(2 ** 31);
let answer = 0;
let left = 0;
let sign = '+';
let number = '';
if(s[left] === '+' || s[left] === '-') {
sign = s[left];
left++;
}
if(isNaN(+s[left])) {
return 0;
}
while(left < s.length && s[left] !== ' ' && !isNaN(+s[left])) {
number += s[left];
left++;
}
for(let i = number.length - 1, j = 0; i >= 0; i--, j++) {
answer += ((+number[i]) * (10 ** j));
}
if(sign === '+' && answer > max) {
return max;
}
if(sign === '-') {
answer = -answer;
if(answer < min) {
return min;
}
}
return answer;
};