力扣-剑指Offer 67题 把字符串转换成整数(C++)- 字符串

题目链接:https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/
题目如下:
在这里插入图片描述
在这里插入图片描述

class Solution {
    
    
public:
    int strToInt(string str) {
    
    
        if(str.size()==0) return 0;
        str.erase(0,str.find_first_not_of(' '));

        if(isdigit(str[0])==false&&str[0]!='+'&&str[0]!='-') return 0;
        
        //处理符号
        int flag=1,i=0;
        if(str[0]=='+') i++;
        else if(str[0]=='-') {
    
    flag=-1;i++;} 
        
        //计算数值
        long long result=0;
        for(;i<str.size();i++){
    
    
            if(isdigit(str[i])) result=result*10+str[i]-'0';
            else break;
            //及时判断是否超限
            if(flag==1&&result>=INT_MAX) return INT_MAX;
            else if(flag==-1&&-result<=INT_MIN) return INT_MIN;
        }

        return result*flag;
    }
};

Guess you like

Origin blog.csdn.net/qq_40467670/article/details/121388301