leetcode----8. 字符串轉換整數 (atoi)

題目鏈接--------------------->8. 字符串轉換整數 (atoi)

這道題目沒什麼好說的,就是要對各個情況要考慮全面,要注意細節

    int myAtoi(string str) {
        int len = str.length(),flag = 1;
        long long int num = 0;
        int ans = 2147483647,i = 0;
        if(len == 0)
            return 0;
        for(i = 0;i < len && str[i] == ' ';i++);    //找到第一個非空字符
        if(str[i] == '-')
        {
            flag = -1;
            i++;
        }
        else if(str[i] == '+')
            i++;
        else if(!(str[i] >= '0' && str[i] <= '9'))
            return 0;
        for(;i < len;i++)
        {
            if(str[i] >= '0' && str[i] <= '9')
            {
                num *= 10;
                num += str[i] - '0';
                //範圍判斷
                if(flag != -1)
                {
                    if(num > ans)
                        return ans;
                }
                else{
                    if(-1*num < -1*ans - 1)
                        return -1*ans - 1;
                }
            }
            else{
                return num *flag;
            }
        }
        return num*flag;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章