class Solution {
public:
int myAtoi(string s) {
int l = s.length();
int i = 0;
while(i<l && s[i] == ' '){
i = i+1;
}
if(s[i] == '-'){
int ans = 0;
i = i+1;
while(i < l && '0' <= s[i] && s[i] <= '9'){
int now = ctoi(s[i]);
if(ans >= (INT_MIN + now) / 10 )
ans = ans*10 - now;
else{
return INT_MIN;
}
i = i + 1;
}
return ans;
}
else{
if(s[i] == '+')
i++;
int ans = 0;
while(i < l && '0'<=s[i] && s[i]<='9'){
int now = ctoi(s[i]);
if(ans <= (INT_MAX-now)/10){
ans = ans*10 +now;
}
else{
return INT_MAX;
}
i++;
}
return ans;
}
}
int ctoi(char c){
switch(c){
case '0':return 0;
case '1':return 1;
case '2':return 2;
case '3':return 3;
case '4':return 4;
case '5':return 5;
case '6':return 6;
case '7':return 7;
case '8':return 8;
case '9':return 9;
}
return 000;
}
};
【leetcode】8. 字符串转换整数 (atoi)
最新推荐文章于 2024-05-01 16:18:57 发布