[leetcode] 8. String to Integer (atoi)

这题貌似是实现c++ 内置的atoi


image.png

字符串--> 带符号的整数

  1. 去除左边所有的空格
  2. 处理首字符是sign的情况
  3. 把数字字符转化为整数 直到遇到( 1.非数字字符 2. 到头 3. 超过上限)
#include <cmath>
class Solution {
public:
    int myAtoi(string str) {
        
        int first = 0;
        // remove whilespace
        while(str[first] ==' '){
            first++;
        }
        if( first >= str.size()) return 0;

        //  +/- 
        int flag = 1;
        if(str[first] == '-'){
            first++;
            flag = 0;
        }else if(str[first]=='+'){
            first++;
        }
        
        long ans = 0;
        int MAX = pow(2,31) -1;
        int MIN = -pow(2,31);
        
        while( first < str.size()){
            if( str[first] <'0' || str[first]>'9' || ans >MAX) break;
            ans = ans*10 + (str[first]-'0') ;
            first++;
        }
        
        if (flag){
            return ans>MAX? MAX :ans;
        }else{
            return -ans<MIN?MIN:-ans;
        }
        
  
    }
};
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容