LeetCode91 解碼方法

2021-10-13 03:45:23 字數 875 閱讀 9217

題目鏈結

題目描述:

一條包含字母a-z的訊息通過以下方式進行了編碼:

'a' -> 1

'b' -> 2

...'z' -> 26

給定乙個只包含數字的非空字串,請計算解碼方法的總數。

題目資料保證答案肯定是乙個 32 位的整數。

示例:

輸入:s = 「12」

輸出:2

解釋:它可以解碼為 「ab」(1 2)或者 「l」(12)。

分析:

狀態表示:f(i),所有由前i個數字解碼得到的字串

屬性:計算解碼得到的字串集合數量

集合劃分:最後乙個字母由s[i]解碼;最後乙個字母由s[i-1]和s[i]解碼

狀態轉移:

f (x

)=f(

x−1)

+f(x

−2

)f(x)=f(x-1)+f(x-2)

f(x)=f

(x−1

)+f(

x−2)

當s[i]不是字元0時,才能由當前字元進行解碼;當s[i-1]s[i]所組成的數字在10到26之間時,才能由s[i-1]s[i]進行解碼

**:

class

solution

// 當i大於等於2時,可以由兩位數字來進行解碼

if(i >=2)

}}return dp[length];}

}

LeetCode91 解碼方法

這題,我花了好大的功夫才通過,中途踩了很多坑,從這個15頂25踩,通過率只有10 多,就能看出這個題,雖然是乙個中等難度的題,但是並沒有那麼好做。看到題目,感覺有點像爬樓梯的那個?想到用動態規劃。第一次寫 沒有考慮0的情況,出錯,那麼就考慮吧,如果出現在頭,就返回0,出現的中間的話。不過我是從後往前...

LeetCode 91 解碼方法

一條包含字母a z的訊息通過以下方式進行了編碼 a 1 b 2 z 26 給定乙個只包含數字的非空字串,請計算解碼方法的總數。示例 1 輸入 12 輸出 2 解釋 它可以解碼為 ab 1 2 或者 l 12 示例 2 輸入 226 輸出 3 解釋 它可以解碼為 bz 2 26 vf 22 6 或者 ...

leetcode 91 解碼方法

一條包含字母a z的訊息通過以下方式進行了編碼 a 1 b 2 z 26給定乙個只包含數字的非空字串,請計算解碼方法的總數。示例 1 輸入 12 輸出 2解釋 它可以解碼為 ab 1 2 或者 l 12 示例 2 輸入 226 輸出 3解釋 它可以解碼為 bz 2 26 vf 22 6 或者 bbf...