實現atoi
,將字串轉為整數。
說明:這題解釋的比較模糊(即沒有指定輸入格式)。你得事先匯集所有的輸入情況。
atoi的要求:
這個函式需要丟棄之前的空白字元,直到找到第乙個非空白字元。之後從這個字元開始,選取乙個可選的正號或負號後面跟隨盡可能多的數字,並將其解釋為數字的值。
字串可以在形成整數的字元後包括多餘的字元,將這些字元忽略,這些字元對於函式的行為沒有影響。
如果字串中的第乙個非空白的字元不是有效的整數,或者沒有這樣的序列存在,字串為空或者只包含空白字元則不進行轉換。
如果不能執行有效的轉換,則返回 0。如果正確的值超過的可表示的範圍,則返回 int_max(2147483647)或 int_min(-2147483648)。
說明:
假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。如果數值超過可表示的範圍,則返回 int_max (231 − 1) 或 int_min (−231) 。
思路:這題思路特別簡單,就是坑特別多,列舉如下:
1、空空空+156空x7
2、空空空-156空x7 3、
空空空156空x7
4、空空空+x156空x7
5、「 」
6、「」
只有1、2、3能得到正確的值,其他的情況都是0.
除此之外題目中說
假設我們的環境只能儲存 32 位有符號整數,所以還要注意越界。
class solution
for(int j=i; jint_max/10 || (re==int_max/10 && int(str[j]-'0')>7))
return flag==1 ? int_max :int_min;
re=re*10+int(str[j]-'0');
}return re*flag;
}};
8 字串轉整數 atoi
一 題目 實現atoi,將字串轉為整數。在找到第乙個非空字元之前,需要移除掉字串中的空格字元。如果第乙個非空字元是正號或負號,選取該符號,並將其與後面盡可能多的連續的數字組合起來,這部分字元即為整數的值。如果第乙個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。字串可以在形成整數的...
8 字串轉整數 atoi
測試案例 2 預期是0 2.14預期是2 0 123 預期是0 9223372036854775808 預期是2147483647 234 預期是0 123 預期是123 下面是反覆根據測試案例最後除錯成功,考慮情況太多複雜。不太好。class solution int temp str i 0 i...
LeetCode 8 字串轉整數(atoi
實現 atoi,將字串轉為整數。說明 這題解釋的比較模糊 即沒有指定輸入格式 你得事先匯集所有的輸入情況。atoi的要求 這個函式需要丟棄之前的空白字元,直到找到第乙個非空白字元。之後從這個字元開始,選取乙個可選的正號或負號後面跟隨盡可能多的數字,並將其解釋為數字的值。字串可以在形成整數的字元後包括...