將乙個字串轉換成乙個整數(整數是有範圍的)。
要求:不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0
輸入描述:
輸入乙個字串,包括數字字母符號,可以為空返回值描述:
如果是合法的數值表達則返回該數字,否則返回0示例1輸入
輸出「+2147483647」
2147483647
示例2輸入
輸出「1a33」
0【解法】
class
solution
// 排除開頭的空格
如果str全是空格,返回值為0
if(i == len)
return0;
判斷空格之後的下一位是否為+或者-或0-9數字,都不是的話返回值為0if(
!isdigit
(str[i]
)&& str[i]
!='+'
&& str[i]
!='-'
)return0;
//isdigit是計算機c(c++)語言中的乙個函式,主要用於檢查其引數是否為十進位制數字字元。
bool neg = str[i]
=='-'
?true
:false
;//定義負號識別符號
i =isdigit
(str[i]
)? i : i+1;
//如果i位是符號位 +或者- 那麼從下一位開始起始
long
long ans =0l;
//返回結果初始定義
while
(i < len &&
isdigit
(str[i]))
if(neg && ans >
1l+ int_max)
}//3.此處就是防止字串中的數字後面有空格或者超過了值得範圍從while中break出來
if(i != len)
return0;
// 不要此處,就是atoi()庫函式的實現
return
!neg ?
static_cast
<
int>
(ans)
:static_cast
<
int>
(-ans)
;//判斷返回的正反}}
;
JZ49 把字串轉換成整數
題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 題解 1 判斷是否合法。2 判斷第乙個字元是 或是 3 迴圈乘加。public static intstrtoint string str if str.charat i else if...
JZ49 劍指offer 把字串轉換成整數
題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 class solution else if str 0 for idx return value class solution def strtoint self,str str in...
49 把字串轉換成整數
將乙個字串轉換成乙個整數 實現integer.valueof string 的功能,但是string不符合數字要求時返回0 要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0。輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否...