leetcode 91 解碼方法

2021-09-28 17:22:53 字數 780 閱讀 5544

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

′ a′

−>

1'a' -> 1

′a′−

>1′b′

−>

2'b' -> 2

′b′−

>2...

......′z

′−

>

26'z' -> 26

′z′−

>26

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

示例 1:

示例 2:

解題思路:使用動態規劃,建立陣列dp[n],dp[i]表示以第i個字元結尾的字串的解碼方法的總數;

因為前面使用到的狀態轉移方程需要dp[i-1]和dp[i-2],所以初始化的時候需要確定dp[

0]

dp[0]

dp[0]和dp[

1]

dp[1]

dp[1

]的值;

其c++**如下:

class

solution

if(s[i]!=0

&& s[i]

-'0'

<=6)

//判斷條件2

if(s[i]

-'0'

>6)

//判斷條件3

}return dp[length-1]

;}};

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...