JZ49 把字串轉換成整數

2021-10-11 18:11:54 字數 1349 閱讀 4949

將乙個字串轉換成乙個整數(整數是有範圍的)。

要求:不能使用字串轉換整數的庫函式。 數值為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。輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否...