解法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表示有 或無 ...