LeetCode解題方法9 狀態機

2021-10-02 16:34:17 字數 1604 閱讀 6784

有效數字

利用狀態機來解題

驗證給定的字串是否可以解釋為十進位制數字。

例如:「0」 => true

" 0.1 " => true

「abc」 => false

「1 a」 => false

「2e10」 => true

" -90e3 " => true

" 1e" => false

「e3」 => false

" 6e-1" => true

" 99e2.5 " => false

「53.5e93」 => true

" --6 " => false

「-+3」 => false

「95a54e53」 => false

先列舉所有有效數字型別,

第一類,沒有指數的整數,分為下面兩種:

序號型別

舉例1-1整數1

1-2正負符號加整數

+1,-1

第二類,沒有指數的小數,分為下面六種

序號型別

舉例2-1

普通小數

1.1

2-2小數點後面沒有數字

1.

2-3小數點前面沒有數字

.1

2-4正負符號加普通小數

-1.1

2-5正負符號加小數點後面沒有數字

-1.

2-6正負符號加小數點前面沒有數字

-.1

第三類,帶指數的數字,分為下面兩種

序號型別

舉例3-1

整數/小數e整數

1.1e100

3-2整數/小數e+/-整數

100e-100

補充,如果前後有空格,中間的數字有效則認為有效。

上述的所有可能用狀態機表示如下:

leetcode解題小記9 回文數

回文數判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從...

LeetCode解題方法之 空指標

203.remove linked list elements 1.這樣可以處理空鍊錶特殊情況,頭指標為要刪除的值的特殊情況 使用空指標p在這裡的好處在於,1.p儲存了頭結點,2.而最開始pre和p指向了同乙個節點物件,這樣如果首節點是空節點或等於val時,可以直接進行操作,因此首節點也可以當做普通...

LeetCode解題記錄(9) 回文數

解題方案 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。輸入 121 輸出 true 輸入 121 輸出 false 原因 121 121 題意很簡單,高階要求是不轉成字串來做,有點難度。這裡給出基於轉字串的方法和不轉字串的方法。都很好理解,不多做解釋。演算...