表示數值的字串

2021-10-01 13:47:32 字數 1494 閱讀 4147

題目描述:

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。

例如,字串"+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

if len(s) <= 0:

return false

# 分別標記是否出現過正負號、小數點、e,因為這幾個需要特殊考慮

has_sign = false

has_point = false

has_e = false

for i in range(len(s)):

# 對於e的情況

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

# 不同出現兩個e

if has_e:

return false

# e不能出現在最後面,因為e後面要接數字

else:

has_e = true

if i == len(s) -1:

return false

# 對於符號位的情況

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

# 如果前面已經出現過了符號位,那麼這個符號位,必須是跟在e後面的

if has_sign:

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

return false

# 如果這是第一次出現符號位,而且出現的位置不是字串第乙個位置,那麼就只能出現在e後面

else:

has_sign = true

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

return false

# 對於小數點的情況

elif s[i] == '.':

# 小數點不能出現兩次;而且如果已經出現過e了,那麼就不能再出現小數點,因為e後面只能是整數

if has_point or has_e:

return false

# 如果是第一次出現小數點,如果前面出現過e,那麼還是不能出現小數點

else:

has_point = true

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

return false

else:

# 其他字元必須是『0』到『9』之間的

if s[i] < '0' or s[i] > '9':

return false

return true

字串 表示數值的字串

題目描述 實現乙個函式用來判斷字串是否表示數值 包括整數和小數以及使用科學計數法表示的數 分析 表示數值的字串的規則有 第乙個字元只能是 以及數字 數字字元後面只能接 或 e e 小數點後面必須要有字元且只能接數字字元或 e e e e 後面必須要接字元且只能接數字字元或者 後面必須要接數字字元 b...

表示數值的字串(字串)

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.第乙個數為 或者為 時,跳過。2.對於小數點 小數點只能出現一次 小數點不...

字串 表示數值的字串

此題出自牛客網的劍指offer專題 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路一 直接正規表示式擼起 實現 如下 public cl...