劍指offer 《表示數值的字串》

2021-10-23 06:16:51 字數 1250 閱讀 9377

詳細描述:

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

示例 1:

限制:

考查:我也不太清除考查什麼,但看到一位大佬的解答,難道是考查迴圈方式?

解法(一):

class

solution

//標記是否遇到相應情況

boolean numseen =

false

;boolean dotseen =

false

;boolean eseen =

false

;char

str = s.

trim()

.tochararray()

;for

(int i =

0;i < str.length; i++

)else

if(str[i]

=='.'

) dotseen =

true;}

else

if(str[i]

=='e'

|| str[i]

=='e'

) eseen =

true

; numseen =

false

;//重置numseen,排除123e或者123e+的情況,確保e之後也出現數

}else

if(str[i]

=='-'

|| str[i]

=='+')}

else

}return numseen;

}}

解析:

執行用時:4ms

記憶體消耗:39.6 mb

解法(二):

解析:

執行用時: ms

記憶體消耗: mb

劍指Offer 表示數值的字串

題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 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 c表示有 或無 ...

表示數值的字串 劍指offer

這道題寫起來比較繁瑣,需要考慮 號是否出現在第乙個位置,是否出現一次,以e為分割前後是不是正確的格式,e前可以為浮點數或者整數,e後只能是整數。因此如果把函式分成三個子函式來寫就好多了,乙個函式判斷是不是整數,乙個判斷是不是浮點數,乙個判斷e前後是否合法。include include bool i...

劍指offer 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題考查對字串的程式設計能力,我們需要從不同型別的數值中分析規律,要全面考慮數值整數,小數,指...