劍指Offer53 表示數值的字串

2021-09-08 19:27:54 字數 1023 閱讀 3373

思路: 

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

class solution:

# s字串

def isnumeric(self, s):

# write code here

hase=false

sign=false

decimal=false

for i in range(0,len(s)):

if s[i] == 'e' or s[i] == 'e':

if i == 0:

return false #指數符號前必須有整數

if i == len(s)-1:

return false #e後面一定要接數字

if hase:

return false #不能同時存在兩個e

hase = true

elif s[i] == '+' or s[i] == '-':

if not sign and i != 0 and not hase: #第一次出現+''-'符號只能在第乙個字元或者指數符號後

return false

if sign and not hase:

return false #第二出現'+''-'符號只能在指數符號後

if i == len(s) - 1:

return false #'+''-'符號不能出現在最後一位上

sign = true

elif s[i] == '.':

# 小數點只能在e之前,小數點不能出現兩次

if hase or decimal:

return false

if i == len(s) - 1:

return false #小數點不能出現在最後一位上

decimal = true

elif s[i]<'0' or s[i]>'9': # 不合法字元

return false

return true

劍指offer 53 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題的主要解題思路如下 首先判斷字串是否為空,或者首元素是否為 若是是則直接返回false 否...

劍指offer 53 表示數值的字串

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。輸出描述 true false 在數值之前可能有乙個表示正負的 或者 接下來是若干個...

劍指offer(53)表示數值的字串

問題描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.正規表示式。正或負符號出現與否 d 整數部分是否出現,如 34 或 3.3...