思路:
# -*- 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...