演算法百題之三十六 字串轉換整數

2021-10-11 01:12:17 字數 1027 閱讀 9154

很高興又能和大家見面了,接下來準備系列更新的是演算法題,一日一練,早日公升仙!

今天的問題是:字串轉換整數

思路:從頭遍歷字串的每乙個字元,遇到「+」,「-」,空字元和數字的時候執行邏輯,當遇到非以上字元或者字串遍歷完畢的時候結束迴圈。最後輸出結果的時候要判斷邊界,比int_max大要輸出int_max,比int_min小要輸出int_min。

#define negative 2

#define positive 1

#define zero 0

用乙個state來記錄結果的符號,zero是沒有被賦值過(可能是空字串),positive是整數,negative表示負數。

int myatoi(string str) 

else break;

} if (state == positive)

res = -res;

return res < int_min ? int_min : res;

}

在接觸這道題之前我是通過str.substr這樣來擷取字串,現在遇到了乙個新的方式,for(char &i : str),這相當於for(int i = 0; i< str.length(); i++)。還有乙個小技巧是,char型轉int型我們可以採取兩種方法,第一就是ch - 『0』,第二種是(int)ch %48,因為『0』的ascall碼是48所以這兩種做法其實是一樣的。測試函式以及測試結果:

字串轉換整數 atoi 雙百演算法

雙百演算法 請你來實現乙個 myatoi string s 函式,使其能將字串轉換成乙個 32 位有符號整數 類似 c c 中的 atoi 函式 函式 myatoi string s 的演算法如下 讀入字串並丟棄無用的前導空格 檢查下乙個字元 假設還未到字元末尾 為正還是負號,讀取該字元 如果有 確...

演算法 字串轉換整數 atoi

題目 請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的...

演算法 字串轉換整數 atoi 。

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。接下來的轉化規則如下 注意 假如該字串中的第乙個非空格字元不是乙個有效整數字元 字串為空或字串僅包含空白字元時,則你的函式不需要進行轉換,即無法進行有效轉換。在任何...