实现请你来实现一个 `myAtoi(string s)` 函数,使其能将字符串转换成一个 32 位有符号整数
(类似 C/C++ 中的 atoi
函数)int myAtoi(string s)
代码示例:
int myAtoi(string s) {
if(s.size() == 0)
{
return 0;
}
int i = 0;
int res = 0;
int flag = 1;
while(s[i] == ' ')
{
++i;
}
if(s[i] == '-')
{
flag = -1;
++i;
}
else if(s[i] == '+'){
++i;
}
while(s[i] >= '0' && s[i] <= '9')
{
if(INT_MAX/10 < res || (INT_MAX/10 == res && INT_MAX%10< s[i] - '0'))
{
return flag == 1?INT_MAX:INT_MIN;
}
res = res*10 + (s[i] - '0');
++i;
}
return res*flag;
}
总结:主要关注如下三方面的内容:
1. 前面的空格
2. 正负号
3. 最大值溢出问题,要对应到有符号整数部分