LeetCode8. 字符串转换整数 (atoi)


题目

分析

简单模拟

代码

 1 class Solution {
 2 public:
 3     int myAtoi(string s) {
 4         //首先去除开头空格
 5         int k = 0;
 6         while(k < s.size() && s[k] == ' '){k++;}
 7 
 8         int flag = 1;//标志位,判断正负
 9         if(s[k] == '-') {flag = -1,k++;}
10         else if(s[k] == '+')  {k++;} //这里必须用else if 不可用else ,if
11         
12         long long res = 0;
13         while(k < s.size() && s[k] >= '0' && s[k] <= '9'){
14             res = res * 10 + s[k] - '0';
15             k++;
16             
17             if(res > INT_MAX) break;
18         }
19         
20         res = res * flag;
21         if(res > INT_MAX) return INT_MAX;
22         if(res < INT_MIN) return INT_MIN;
23         return res;
24     }
25 };

相关