# 有效数字

有效数字(按顺序)可以分成以下几个部分:

  1. 一个 小数 或者 整数
  2. (可选)一个 'e''E' ,后面跟着一个 整数

小数(按顺序)可以分成以下几个部分:

  1. (可选)一个符号字符('+''-'
  2. 下述格式之一:
    1. 至少一位数字,后面跟着一个点 '.'
    2. 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字
    3. 一个点 '.' ,后面跟着至少一位数字

整数(按顺序)可以分成以下几个部分:

  1. (可选)一个符号字符('+''-'
  2. 至少一位数字

部分有效数字列举如下:

部分无效数字列举如下:

给你一个字符串 s ,如果 s 是一个 有效数字 ,请返回 true

 

示例 1:

输入:s = "0"
输出:
true

示例 2:

输入:s = "e"
输出:
false

示例 3:

输入:s = "."
输出:
false

示例 4:

输入:s = ".1"
输出:
true

 

提示:

以下程序实现了这一功能,请你填补空白处内容: ```python class Solution(object): def isNumber(self, s): s = s.strip() ls, pos = len(s), 0 if ls == 0: return False if s[pos] == '+' or s[pos] == '-': pos += 1 isNumeric = False while pos < ls and s[pos].isdigit(): pos += 1 isNumeric = True _____________________________; elif pos < ls and s[pos] == 'e' and isNumeric: isNumeric = False pos += 1 if pos < ls and (s[pos] == '+' or s[pos] == '-'): pos += 1 while pos < ls and s[pos].isdigit(): pos += 1 isNumeric = True if pos == ls and isNumeric: return True return False # %% s = Solution() print(s.isNumber(s = "0")) ``` ## template ```python class Solution(object): def isNumber(self, s): s = s.strip() ls, pos = len(s), 0 if ls == 0: return False if s[pos] == '+' or s[pos] == '-': pos += 1 isNumeric = False while pos < ls and s[pos].isdigit(): pos += 1 isNumeric = True if pos < ls and s[pos] == '.': pos += 1 while pos < ls and s[pos].isdigit(): pos += 1 isNumeric = True elif pos < ls and s[pos] == 'e' and isNumeric: isNumeric = False pos += 1 if pos < ls and (s[pos] == '+' or s[pos] == '-'): pos += 1 while pos < ls and s[pos].isdigit(): pos += 1 isNumeric = True if pos == ls and isNumeric: return True return False # %% s = Solution() print(s.isNumber(s = "0")) ``` ## 答案 ```python if pos < ls and s[pos] == '.': pos += 1 while pos < ls and s[pos].isdigit(): pos += 1 isNumeric = True ``` ## 选项 ### A ```python if pos < ls and s[pos] == '.': pos += 1 while pos < ls: pos += 1 isNumeric = True ``` ### B ```python if pos < ls and s[pos] == '.': pos += 1 while pos > ls: pos += 1 isNumeric = True ``` ### C ```python if pos < ls and s[pos] == '.': pos += 1 while pos > ls and s[pos].isdigit(): pos += 1 isNumeric = True ```