劍指Offer對答如流系列 把字串轉換成整數

2021-10-02 11:44:05 字數 751 閱讀 1809

請你寫乙個函式strtoint,實現把字串轉換成整數這個功能。當然,不能使用庫函式。

既然不能使用庫函式,那麼我們就利用字元的ascii值,將字元轉換成數字,並進行累加。

// 標識輸入非法

boolean isvalid =

false

;public

intstrtoint

(string str)

char

chars = str.

tochararray()

;//先用long來儲存,以防止越界

long num=0;

boolean minus=

false

;for

(int i=

0; i)else

if(i==

0&& chars[i]

=='+'

)else

num=

(!minus)

? num*

10+a : num*

10-a;

//不放在最後面是為了防止str=『+』的情況被判斷為true

isvalid=

true;if

((!minus && num>

0x7fffffff)||

(minus && num<

0x80000000))

}}return

(int

)num;

}

劍指Offer對答如流系列 把陣列排成最小的數

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這3個數字能排成的最小數字321323。之前我們做過字元全排列的習題 劍指offer對答如流系列 字串的排列,但是將演算法思想應用到這一題的話,效果不好,求出所有的組合,再計算出組合的最...

劍指Offer對答如流系列 把數字翻譯成字串

給定乙個數字,我們按照如下規則把它翻譯為字串 0翻譯成 a 1翻譯成 b 11翻譯成 l 25翻譯成 z 乙個數字可能有多個翻譯。例如12258有5種不同的翻譯,它們分別 bccfi bwfi bczi mcfi 和 mzi 請程式設計實現乙個函式用來計算乙個數字有多少種不同的翻譯方法。刷題刷多了,...

劍指Offer對答如流系列 醜數

我們把只包含質因子2 3和5的數稱作醜數 ugly number 求按從小到大的順序的第n個醜數。例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。判斷乙個數是不是醜數,最容易想到的方法就是讓這個數不斷除以2,3,5。對於第n個醜數,只要從1開始,依次判斷每個數是不...