劍指offer 表示數值的字串 python

2021-09-20 12:50:43 字數 1269 閱讀 6912

題目描述

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

# -*- coding:utf-8 -*-

class

solution

:# s字串

defisnumeric

(self, s)

:# write code here

iflen

(s)==

1and

'0'<=s<=

'9':

return

true

ifnot

('1'

<=s[0]

<=

'9'or s[0]

in):return

false

point_flag =

0#為1則不允許再出現.

allow_sign =

0 e_flag =

0# 為1則不允許再出現e/e

for idx in

range(1

,len

(s))

:# e/e 後面允許出現乙個正負號

if allow_sign ==

1and s[idx]in:

allow_sign =

0continue

if'0'

<=s[idx]

<=

'9':

continue

elif s[idx]

=='.'

and point_flag ==0:

point_flag =

1elif

(s[idx]

=='e'

or s[idx]

=='e'

)and e_flag ==

0and idx<

len(s)-1

:if'1'<=s[idx-1]

<=

'9':

allow_sign =

1 e_flag =

1# e後面跟的數值不能帶.

point_flag =

1else

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