題目描述
將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0
輸入乙個字串,包括數字字母符號,可以為空
如果是合法的數值表達則返回該數字,否則返回0樣例輸出 2147483647 0
思路分析
題目描述過於簡單了,對於邊界條件,難道讓做題者猜測嗎(手動滑稽)
1.省略字元開頭空格
2.保留負號
3.若含有字母,返回0
5.大數或負大數,輸出其值
**
public int strtoint(string str)
stringbuffer s = new stringbuffer();
long b = 0;
int sign = 1;
for (int i = 0; i < str.length(); i++)
}if (s.charat(0) !='+' && s.charat(0) !='-' && s.charat(0) '9')
if (s.charat(0) =='+' || s.charat(0) =='-')
if (s.charat(0) >'0' && s.charat(0)
for (int i = 1; i < s.length(); i++)
b = b*10 + a;
}return (int)b*sign;
}
結果
49 劍指offer 把字串轉換成整數
題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否則返回0 輸入例子 2147483647 1a33 輸出例子 2147483647 0 ...
劍指offer 49 把字串轉換成整數
題目 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入描述 輸入乙個字串,包括數字字母符號,可以為空 思路 如果有正負號,先處理正負號,再處理判斷是否為合法字元,思路看不懂可以看 附有注釋,請原諒博主我太懶 class solution e...
劍指offer面試題49 把字串轉為整數
此題並不複雜,主要是想考做題人思維的嚴密性和 的健壯性,要想寫出完整的正確的 必須要考慮各種異常的情況,以及設計出足夠多的測試用例以供正確性檢驗,因此可以說也並不簡單,至少剛開始對我來說就是這樣的。我們主要考慮的是輸入字串引數存在的各種可能性 1 輸入的字串是正數 負數 和0 0 2 超過最大的正數...