劍指offer 把字串轉換成整數

2021-10-04 04:55:45 字數 906 閱讀 8712

將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0

輸入描述:

輸入乙個字串,包括數字字母符號,可以為空

輸出描述:

如果是合法的數值表達則返回該數字,否則返回0

解題思路

這道題的意思就是判斷這個字串表示的是不是乙個整數,字串最前面可以有正負號,後面只能是數字,不能有字母或者其他符號。另外還要考慮溢位的問題,也就是說數字必須在[-2^31,2^31-1]之間。

計算的是整數的絕對值,所以若是正數必須<=2^31-1,若是負數必須<=2^31;

用乙個變數limit記錄這個邊界,預設為2^31-1,負數的的時候要更新

function

strtoint

(str)

else

if(str[0]

!='+')if

(str.length ==1)

return

0 i++

//跳過符號位

}let limitmin = limit/

10//針對res*10可能越界建立的變數

for(

;i)//邊界處理分為兩步,因為這兩步都可能越界

if(res>limitmin)

return

0 res = res*

10if

(res+

(str[i]

-'0'

)>limit)

return

0//str[i]-'0'把字串轉化為數字的方法

res = res+

(str[i]

-'0')}

return res*flag

}

劍指offer 把字串轉換成整數

字串轉成整數的核心 很簡單,但是需要考慮的各種情況很多。1 首位 的判斷。2 在 的溢位判斷。3 null 空字串的判斷。4 數字後面出現了很多非數字的情況。atoi函式是講前面的數字儲存下來,劍指offer 的 則是返回0。兩種情況都說的通,視情況而定吧。5 開頭出現了很多非數字,中間摻雜著數字的...

《劍指offer》 把字串轉換成整數

題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。這種題目交代不清楚,也沒啥技巧含量和思考價值,既然出現了,就順帶著做一下吧。code t 把字串轉換成整數 題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。date 2015.12.10 20 17 auth...

劍指offer 把字串轉換成整數

輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否則返回0 示例1 輸入 2147483647 1a33 輸出 2147483647 0class solution int g status valid int strtoint string str ...