題目描述
請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100",「5e2」,"-123",「3.1416"和」-1e-16"都表示數值。 但是"12e",「1a3.14」,「1.2.3」,"±5"和"12e+4.3"都不是。
列舉邊界情況:
# -*- coding:utf-8 -*-
class
solution
:# s字串
defisnumeric
(self, s)
:# write code here
if s.count(
'.')
>1:
return
false
if s in
['+-'
,'-+'
,'-'
,'+'
,'.']:
return
false
for i in
range
(len
(s))
:if s[i]
notin
['0'
,'1'
,'2'
,'3'
,'4'
,'5'
,'6'
,'7'
,'8'
,'9'
,'+'
,'-'
,'e'
,'.'
,'e']:
return
false
if s[i]
=='e'
or s[i]
=='e':if
(i==
len(s)-1
)or s.count(
'.',i,
len(s)-1
)>0:
return
false
if(s[i]
=='+'
or s[i]
=='-'
)and i>0:
if(s[i-1]
=='e')or
(s[i-1]
=='e'):
continue
else
:return
false
return
true
# -*- coding:utf-8 -*-
class
solution
:# s字串
defisnumeric
(self, s)
:# write code here
try:
float
(s)return
true
except
:return
false
正規表示式:
關於正規表示式python 中用re模組
. 匹配任意字元(不包括換行符)
^ 匹配開始位置,多行模式下匹配每一行的開始
$ 匹配結束位置,多行模式下匹配每一行的結束
* 匹配前乙個元字元0到多次
+ 匹配前乙個元字元1到多次
? 匹配前乙個元字元0到1次
匹配前乙個元字元m到n次
\\ 轉義字元,跟在其後的字元將失去作為特殊元字元的含義,例如\\.只能匹配.,不能再匹配任意字元
字符集,乙個字元的集合,可匹配其中任意乙個字元
| 邏輯表示式 或 ,比如 a|b 代表可匹配 a 或者 b(.
..) 分組,預設為捕獲,即被分組的內容可以被單獨取出,預設每個分組有個索引,從 1 開始,按照"("的順序決定索引值
(?ilmsux) 分組中可以設定模式,ilmsux之中的每個字元代表乙個模式,用法參見 模式 i
(?:...
) 分組的不捕獲模式,計算索引時會跳過這個分組
(?p..
.) 分組的命名模式,取此分組中的內容時可以使用索引也可以使用name
(?p=name) 分組的引用模式,可在同乙個正規表示式用引用前面命名過的正則
(?#...) 注釋,不影響正規表示式其它部分,用法參見 模式 i
(?=...
) 順序肯定環視,表示所在位置右側能夠匹配括號內正則
(?!...
) 順序否定環視,表示所在位置右側不能匹配括號內正則
(?<=..
.) 逆序肯定環視,表示所在位置左側能夠匹配括號內正則
(?) 逆序否定環視,表示所在位置左側不能匹配括號內正則
(?(id
/name)yes|no) 若前面指定id或name的分割槽匹配成功則執行yes處的正則,否則執行no處的正則
\number 匹配和前面索引為number的分組捕獲到的內容一樣的字串
\a 匹配字串開始位置,忽略多行模式
\z 匹配字串結束位置,忽略多行模式
\b 匹配位於單詞開始或結束位置的空字串
\b 匹配不位於單詞開始或結束位置的空字串
\d 匹配乙個數字, 相當於 [0-
9]\d 匹配非數字,相當於 [^0
-9]\s 匹配任意空白字元, 相當於 [ \t\n\r\f\v]
\s 匹配非空白字元,相當於 [
^ \t\n\r\f\v]
\w 匹配數字、字母、下劃線中任意乙個字元, 相當於 [a-za-z0-9_]
\w 匹配非數字、字母、下劃線中的任意字元,相當於 [
^a-za-z0-9_]
# -*- coding:utf-8 -*-
import re
class
solution
:# s字串
defisnumeric
(self, s)
:# write code here
return re.match(r"^[\+\-]?[0-9]*(\.[0-9]*)?([ee][\+\-]?[0-9]+)?$"
,s)
53 表示數值的字串
請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。正規表示式 字元集合 分組 重複 0 1 次 重複 1 n 次 重複 0 n 次 任意字元 轉...
53 表示數值的字串
題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。class solution 幾個關鍵點 1.基本邊界。string null st...
53 表示數值的字串
題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。分析 表示數值的字串模式 sign integral digits fraction...