思路:暴力列舉的高階名字:有限狀態自動機。
判斷步驟:
1.首先把開頭空格判斷掉。
2.如果當前字元為e
ee或eee
它的前面不能有.
.. 它的前面必須有數字。
然後將符號,小數點,數字狀態置為000.
3.如果當前字元為符號。
它的前面不能有數字,小數點,符號。
然後將符號置為111。
4.如果當前字元為小數點。
它的前面不能有小數點和eee。
然後將小數點置為111。
5.如果是空格則跳出。
然後判斷是否為末尾連續的空格。
6.最後特判當前是否遍歷完了並且有數字出現過。
幾個注意的點:e
ee後面不能有小數,.
..前面可以沒數字,符號不能連續出現多次,小數點最多出現1次。
class
solution
else
if(s[id]
=='+'
|| s[id]
=='-'
)else
if(s[id]
=='.'
)else
if(s[id]
==' '
)break
;else
return
false
;++id;
}while
(id==' '
) id++
;return jg_num&&id==n;}}
;
劍指Offer 20 表示數值的字串
請實現乙個函式來判斷字串是否表示數值 包括整數和小數 例 字串 100 5e2 123 3.1416 1e 16 都表示數值,但 12e 1a3.14 1.2.3 5 12e 5.4 都不是。時間複雜度 o n 空間複雜度 o 1 def numeric strings s param s num ...
劍指Offer20 表示數值的字串
題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。考察的是 模式匹配的策略 的完整性 我們首先分析一下子可能是數值的字串的格式 在數值之前...
劍指offer 20 表示數值的字串
請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如 字串 100 5e2 123 3.1416 和 1e 16 都表示數值 但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是 使用指標的指標 a.b e e c 對a b c 的判斷 class solution if ...