32 劍指Offer之陣列中重複的數字

2021-10-08 04:58:55 字數 1166 閱讀 3253

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100", 「5e2」, 「-123」," 3.1416" 和 「-1e-16」 都表示數值。 但是 「12e」, 「1a3.14」, 「1.2.3」, 「±5」 和 「12e+4.3」 都不是。

表示數值的字串遵循共同的模式:a[.[b]][e|ec]或者.b[e|ec]。以上模式的含義是:a為數值的整數部分,b為跟在小數點之後的小數部分,c為跟在e或者e之後的指數部分。其中,a部分可以沒有,比如小數.123代表0.123。如果乙個數沒有整數部分,那麼小數部分必須有。

思路一:對字串中的每個字元進行判斷分析:

思路二:使用正規表示式,對字串中的每個字元進行判斷分析?:[\\+\\-]?\\d*(\\.\\d+)?([ee][\\+\\-]?\\d+)?

public

class

isnumeric_32

;char

str =

; system.out.

println

(isnumeric

(str));

}public

static

boolean

isnumeric

(char

str)

//第二次出現,必須是e或者e之後

if(sign && str[i -1]

!='e'

&& str[i -1]

!='e'

) sign =

true;}

else

if(str[i]

=='.'

)else

if(str[i]

=='e'

|| str[i]

=='e'

)else

if(str[i]

>

'9'|| str[i]

<

'0')

return

false;}

return

true;}

public

static

boolean

isnumeric

(char

str)

}

劍指offer之陣列中重複的數

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。public class solution a numbers i ...

劍指offer之 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。暴力解法,遍歷,發現重複即返回true和重複數字 hash,由於數字...

(Java)劍指offer之陣列中重複的數

題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。引數說明 numbers 輸入的整數陣列 length 陣...