🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”
题目
题目分析
对于这道题目而言,我们需要做到的是将字符串转换成整数。
这里我们需要注意几个点
- 首先我们需要保证下标在这个范围之内,所以我们会在每个条件前面加上一个判定条件
- 不为空
- 考虑它的范围,可能最大,可能最小,要是超过最大最小范围就用最大数和最小数
- 分开做,先考虑它的标志,+,-,-+,+-,这几种,然后考虑每位的数字
根据这些,我们就可以得到这道题目的代码。
class Solution {
public://底部坐标int myAtoi(string str) {int index = 0,digital = 0,//第一位的值sign = 1;int total = 0;//判断是否为空if (str.empty()){return 0;}//不为空,首先消除空格while (index < str.size() && str[index] == ' ')index++;//消除空格之后判断首位if (index < str.size() && str[index] == '-'){if(str[index+1]=='+'){sign=0;}else{index++;sign = -1;}}if (index < str.size() && str[index] == '+'){if(str[index+1]=='-'){sign=0;}else{index++;sign = 1;}}while (index < str.size()){digital = str[index] - '0';if (digital < 0 || digital >9)break;// 检查是否溢出if (total > INT_MAX / 10 || (total == INT_MAX / 10 && digital > INT_MAX % 10))return (sign == 1) ? INT_MAX : INT_MIN;total = 10 * total + digital;index++;}return total * sign;}};