劍指Offer 五十三 表示數值的字串

2021-09-27 07:01:48 字數 1220 閱讀 1894

解法1:在數值之前可能有乙個表示正負的』+『或者』-』。接下來是若干個0到9的數字表示數值的整數部分(在某些小數里可能沒有數值的整數部分)。如果數值是乙個小數,那麼在小數後面可能會有若干個0到9的數字表示數值的小數部分。如果數值用科學記數法表示,接下來是乙個』e』或者』e』,以及緊跟著的乙個整數(可以有正負號)表示指數。

判斷乙個字串是否符合上述模式時,首先看第乙個字元是不是正負號。如果是,在字串上移動乙個字元,繼續掃瞄剩餘的字串中0到9的數字。如果是乙個小數,則將遇到小數點。另外,如果是用科學記數法表示的數值,在整數或者小數的後面還有可能遇到』e』或者』e』。

class solution:

# s字串

def isnumeric(self, s):

# write code here

if len(s) <= 0:

return false

has_sign = false

has_point = false

has_e = false

for i in range(len(s)):

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

if has_e:

return false

else:

has_e = true

if i == len(s) - 1:

return false

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

if has_sign:

if s[i-1] != 'e' and s[i-1] !='e':

return false

else:

has_sign = true

if i > 0 and s[i-1] != 'e' and s[i-1] != 'e':

return false

elif s[i] == '.':

if has_point or has_e:

return false

else:

has_point = true

if i >0 and (s[i-1] == 'e' or s[i-1] == 'e'):

return false

else:

if 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 都不是。class solutionif string string bool result true...

劍指Offer第五十三題 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 這裡表示數字的字元有 0 9,e,e,規則 ps 這裡我測試過 128.可以輸出,1,1...

劍指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表示有 或無 ...