class Solution { public: int myAtoi(string s) { int i = 0, flag = 1, res = 0; //去掉前导空格 while (s[i] == ' ') { i++; } //判断正负号 if (s[i] == '-') { flag = -1; i++; } else if (s[i] == '+') { i++; } //计算数字 while (i < s.size() && isdigit(s[i])) { int digit = s[i] - '0'; //判断是否超出范围 if (res > INT_MAX/10 || (res == INT_MAX/10 && digit > 7)) { return flag == -1 ? INT_MIN : INT_MAX; } res = res * 10 + digit; i++; } return res * flag; } };

请你来实现一个 myAtoistring s 函数使其能将字符串转换成一个 32 位有符号整数类似 CC++ 中的 atoi 函数。函数 myAtoistring s 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符假设还未到字符末尾为正还是负号读取该字符如果有。 确定最终结果是负数还是正数。 如果两者都不存在则假定结果为正。读入下一个字符直到到达下一个非数字字符或到达输入的结尾。字符串的

原文地址: http://www.cveoy.top/t/topic/boTx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录