leetcode String to Integer (atoi)

這個題目就是將字符串轉化爲整數,但是這個題目的要求比較少,沒有考慮e,小數點等情況,只是很簡單的字符串的轉化,當不滿足條件時,比如-+1,要輸出0,雖然我覺得輸出-1應該纔對吧。。。還有一點是對溢出的判斷,溢出的話,就輸出邊界值(INT_MAX或INT_MIN)還有對於正負數空格的判斷,別的要求就沒有了,代碼如下,也比較簡單。。。


class Solution {
public:
    int myAtoi(string str) {
        int ans = 0;
        int i = 0;
        int minas = 1;
        while(str[i]==' ')
            i++;
        int size = str.length();
        if(str[i]=='-'||str[i]=='+')
        {
            minas = str[i++]=='-'?-1:1;
        }
        while(i<size&&str[i]>='0'&&str[i]<='9')
        {
            if(ans > INT_MAX / 10 || (ans == INT_MAX / 10 && str[i] - '0' > 7))
                return minas==1?INT_MAX:INT_MIN;
            ans=ans*10+str[i++]-'0';
        }
        return minas*ans;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章