把字符串轉換成整數

將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0

輸入描述:
輸入一個字符串,包括數字字母符號,可以爲空


輸出描述:
如果是合法的數值表達則返回該數字,否則返回0

輸入例子:
+2147483647
    1a33

輸出例子:
2147483647
    0

這個題目沒啥難度,測試用例也不全,有空到leetCode做相應的那道題。要考慮到各種邊界情況:空串;有無正負號;只有正負號;錯誤標誌輸出;越界問題。這裏沒處理後兩種。


class Solution {
public:
    int StrToInt(string str) {
        if(str.empty())
            return 0;
        int res=0;
        int start=0;
        char sign='0';
        if(str[0]=='+'||str[0]=='-'){
             sign=str[0];
             start=1;
        }   
        for(int i=start;i<str.size();i++){
            if(str[i]<'0'||str[i]>'9')
                return 0;
            else
                res=10*res+(str[i]-'0');
        }
        if(res==0)
            return 0;
        else 
            return (sign=='-'?-res:res);  
    }
};



發佈了133 篇原創文章 · 獲贊 23 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章