表示數值的字串

2021-10-03 11:20:30 字數 2891 閱讀 3709

題目:

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

思路一:

窮舉**:

class

solution

:# s字串

defisnumeric

(self, s):if

not s:

return

false

if'e'

in s:

if s.count(

'e')

>1:

return

false

else

: i = s.index(

'e')

if i ==

len(s)-1

:return

false

return self.helper1(s[

:i])

and self.helper2(s[i+1:

])if'e'

in s:

if s.count(

'e')

>1:

return

false

else

: i = s.index(

'e')

if i ==

len(s)-1

:return

false

return self.helper1(s[

:i])

and self.helper2(s[i+1:

])return self.helper1(s)

defhelper1

(self, s)

: arr =

['0'

,'1'

,'2'

,'3'

,'4'

,'5'

,'6'

,'7'

,'8'

,'9'

,'.'

]if s.count(

'.')

>1:

return

false

for i in s[1:

]:if i not

in arr:

return

false

if s[0]

!='+'

and s[0]

!='-'

and s[0]

notin arr:

return

false

else

:return

true

defhelper2

(self, s)

: arr =

['0'

,'1'

,'2'

,'3'

,'4'

,'5'

,'6'

,'7'

,'8'

,'9'

]for i in s[1:

]:if i not

in arr:

return

false

if s[0]

!='+'

and s[0]

!='-'

and s[0]

notin arr:

return

false

else

:return

true

思路二:

巧妙**:

class

solution

:# s字串

defisnumeric

(self, s)

: arr =

['0'

,'1'

,'2'

,'3'

,'4'

,'5'

,'6'

,'7'

,'8'

,'9'

] e, decimal =0,

0for i in

range

(len

(s))

:if s[i]

in arr:

continue

elif s[i]

=='+'

or s[i]

=='-'

:if i !=

0and s[i-1]

!='e'

and s[i-1]

!='e'

:return

false

elif s[i]

=='e'

or s[i]

=='e'

:if i ==

0or i ==

len(s)-1

or e:

return

false

e =1elif s[i]

=='.'

:if decimal or i ==

len(s)-1

or s[i+1]

=='e'

or s[i+1]

=='e'

or e:

return

false

decimal =

1else

:return

false

return

true

字串 表示數值的字串

題目描述 實現乙個函式用來判斷字串是否表示數值 包括整數和小數以及使用科學計數法表示的數 分析 表示數值的字串的規則有 第乙個字元只能是 以及數字 數字字元後面只能接 或 e e 小數點後面必須要有字元且只能接數字字元或 e e e e 後面必須要接字元且只能接數字字元或者 後面必須要接數字字元 b...

表示數值的字串(字串)

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.第乙個數為 或者為 時,跳過。2.對於小數點 小數點只能出現一次 小數點不...

字串 表示數值的字串

此題出自牛客網的劍指offer專題 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路一 直接正規表示式擼起 實現 如下 public cl...