|
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 本题中的空白字符只包括空格字符 ' ' 。 |
|
示例 1: 输入:s = "42" |
思路
关键在于去掉前置空格与正负号判断
C++
class Solution {
public:
int myAtoi(string s) {
int head=0,tail=s.size();
while (s[head]==' ' && head<tail) head++;
bool op = true;
if(s[head]=='-'){
head++;
op = false;
}else if(s[head]=='+') head++;
long num = 0;
while (head<tail){
if (s[head] >= '0' && s[head] <= '9') {
num = num * 10 + s[head] - 48;
if (op && num >= INT_MAX) return INT_MAX;
else if (!op && -num <= INT_MIN) return INT_MIN;
head++;
continue;
}
break;
}
return op ? num : -num;
}
};
本文介绍了一个名为myAtoi的函数实现,该函数能够将字符串转换为32位有符号整数。文章详细阐述了函数的工作流程,包括去除前导空格、判断正负号、读取数字字符等步骤,并提供了C++示例代码。
2778

被折叠的 条评论
为什么被折叠?



