Leetcode 8. String to Integer (atoi)

https://leetcode.com/problems/string-to-integer-atoi/

class Solution {
public:
    const int _MAX=0x7fffffff,_MIN=0x80000000;
    int myAtoi(string str) {
        long long int val=0;
        int i=0,flag=1;
        while(str[i]==' ') ++i;
        if(str[i]=='-') flag=-1,++i;
        else if(str[i]=='+') ++i;
        while(i<str.size() && str[i]>='0' && str[i]<='9'){
            val=val*10+str[i]-'0';
            if(flag*val>=_MAX) return _MAX;
            if(flag*val<=_MIN) return _MIN;
            ++i;
        }
        return flag*val;
    }
};

python版本

class Solution:
    def myAtoi(self, str: str) -> int:
        str=str.strip()
        if len(str)==0:
            return 0
        sign=1
        if str[0]=='-' or str[0]=='+':
            sign=-1 if str[0]=='-' else 1
            str=str[1:]
        ans=0
        for i in str:
            if i>='0' and i<='9':
                ans=ans*10+int(i)
            else:
                break
        INT_MAX,INT_MIN=2**31-1,-2**31
        ans*=sign
        if ans>INT_MAX:
            ans=INT_MAX
        if ans<INT_MIN:
            ans=INT_MIN
        return ans
        
posted @ 2019-04-25 16:32  benda  阅读(85)  评论(0编辑  收藏  举报