劍指off 表示數值的字串

2021-09-20 15:25:59 字數 1065 閱讀 9474

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

思路:主要是判斷條件的處理 邊界的處理

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

class solution:

# s字串

def isnumeric(self, s):

# write code here

# 匹配模式串a[.[b]][e|ec] 或者.b[e|ec]\

if not s:return false

# 標記 符號 小數點 e|e是否已經出現過

sign=false

decimal=false

hase=false

n=len(s)

for i in range(n):

# e|e只能出現一次 且前/後面必須接上數字

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

if hase or i==n-1 or i==0:return false

hase=true

# 小數點只能在e之前出現,且後面必須接上數字 且只能出現一次

elif s[i]=='.':

if hase or i==n-1 or decimal:return false

decimal=true

# +-只能出現在開頭或者e之後

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

# 第一次出現只能在第乙個位置或者e之後

if (not sign) and i!=0 and (not hase):return false

if sign and (not hase):return false

if i==n-1:return false

sign=true

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