把字符串转换成整数

2020-07-24  本文已影响0人  Crazy_Bear
class Solution {
public:
    int StrToInt(string str) {
        if(str.empty()) return 0;
        int len = str.size();
        if(len == 1){
            if(str[0]>'0'&&str[0]<'9') return 1;
            else return 0;
        }
        else{
            int flag=1;
            if(str[0]=='+'||str[0]=='-')
            {
                for(int i=1;i<str.size();i++)
                    if(str[i]>'0'&&str[i]<'9')continue;
                    else{
                        flag=0;
                        break;
                    }
                if (flag==0) return 0;
                else 
                {
                   if(str[0]=='+') return summary(str,1,1);
                    else return summary(str,1,0);
                }
            }
                
            else
            {
                for(int i=0;i<str.size();i++)
                    if(str[i]>'0'&&str[i]<'9')continue;
                    else{
                        flag=0;
                        break;
                    }
            }
            if(flag==0) return 0;
            else return summary(str,0,1);
        }
        
    }
    
    int summary(string s,int start,int tag)
    {
        int sum=0;
        for(int i=start;i<s.size();i++)
            sum=(s[i]-'0')+sum*10;
        return tag==1?sum:0-sum;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读