# 91 - Decode Ways
解法一 - Dynamic programming
我們可以把 dp[i] 定義成從第 0 位到第 i-1 個 letter 之間有幾種 decode 方式。
所以就可以寫出,舉例來說,假設我們在看 "126" 的 "6" 這一位:
因為 6 本身就能是一個字母,所以這可以跟 dp[i-1] 的 decode 方式銜接(也就是不管 dp[i-1] 是什麼樣的字母組合,都可以加上 "F" 這一個字母),也就有 dp[i-1] 種方式。
因為 26 也可以是一個字母,所以這可以跟 dp[i-2] 的 decode 方式銜接(也就是不管 dp[i-2] 是什麼樣的字母組合,都可以加上 "Z" 這一個字母),也就有 dp[i-2] 種方式。
另外因為我們會需要往回看到 i-2,所以我們需要定義 dp[0],為了讓 dp[2] 是 valid,所以把 dp[0] 定義成 1。
Last updated