劍指Offer 表示數值的字串(考邏輯周密性)

2021-10-03 21:43:47 字數 753 閱讀 6046

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

除了空指標直接返回false ,之外分為三部分:

1>在整數開始時遇到+/-號直接str++;

2>對於小數點來說:

a.小數點只能出現一次

b.小數點前面不能有e/e

c.小數點之後或者之前必須有整數。(我認為『33.』和』.33』 都算數字但是』 .』 不算數字)

3>對於e/e而言:

a.e/e之前必須有整數

b.e/e只能出現一次

c.e/e之後可以緊跟著+/-,但是+/-之後必須是數字

注: 其實對這個題每個人設定的是數值的條件不同,寫出來的**不同,下面的**雖然通過了牛客,但也不一定考慮到所有問題。這道題考你邏輯的周密性。

class

solution

//小數點

elseif(

*str ==

'.')

// e/e的部分

elseif(

*str ==

'e'||

*str ==

'e')

else

return

false;}

return

true;}

};

劍指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 都不是。本題考查對字串的程式設計能力,我們需要從不同型別的數值中分析規律,要全面考慮數值整數,小數,指...