[数学] leetcode 8 String to Integer (atoi)

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

        这题题号挺前的,但一直没做。今天提了5次才过,终于知道这道题为什么通过率这么低了。主要就是if/else练习,尤其是完全没看题后会挂在很多地方。

class Solution {
public:
    int myAtoi(string str) {
        unsigned long long res = 0;
        bool bPositive = true;
        bool bFind = false;
        for(int i = 0;i < str.size();i++)
        {
            if(str[i] == ' ') 
            {
                if(bFind) return bPositive ? res : -res;
                else continue;
            }
            if(!bFind && str[i] == '-')
            {
                bFind = true;
                bPositive = false;
                continue;
            }
            if(!bFind && str[i] == '+')
            {
                bFind = true;
                bPositive = true;
                continue;
            }           
            if(!isdigit(str[i])) return bPositive ? res : -res;
            bFind = true;
            unsigned long long num = str[i] - '0';
            res = 10 * res + num;
            if(res >= INT_MAX) 
            {
                if(!bPositive)
                {
                    if(res == INT_MAX) return -INT_MAX;
                    else return INT_MIN;
                }
                return INT_MAX;
            }
        }
        return bPositive ? res : -res;
    }
};

 

上一篇:LeetCode 8. 字符串转换整数 (atoi)


下一篇:LeetCode 每日一题 (字符串转换整数 (atoi))