算法
模拟
时间复杂度
o(n)
参考文献
C 代码
#include <limits.h> // 用于 INT_MAX 和 INT_MIN
int strToInt(char* str) {
if (str == NULL) return 0;
// 跳过前面的空格
while (*str == ' ') {
str++;
}
// 检查符号
int sign = 1;
if (*str == '+' || *str == '-') {
sign = (*str == '+') ? 1 : -1;
str++;
}
// 转换数字
int result = 0;
while (*str >= '0' && *str <= '9') {
int digit = *str - '0';
// 检查是否溢出
if (result > (INT_MAX / 10) || (result == (INT_MAX / 10) && digit > (INT_MAX % 10))) {
return (sign == 1) ? INT_MAX : INT_MIN;
}
result = result * 10 + digit;
str++;
}
return sign * result;
}