leetcode 91 解碼方法

2021-09-01 09:25:28 字數 845 閱讀 7510

一條包含字母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" (2 2 6) 。
跟爬樓梯乙個意思,每次只能爬一階或者爬兩階,遞推式為dp[i] = dp[i - 1] + dp[i - 2]。只不過有些限制條件,比如s[i]和s[i - 1]必須是要構成10到26的數字,否則dp[i - 2]就不可能達到dp[i],此時dp[i] = dp[i - 1]。還有乙個限制條件就是"0","01"、「02」這種肯定是不可以的,如果兩個條件都不滿足那結果肯定是0。

class solution 

else

dp[1] = 1;

for(int i = 2;i <= len;i++)

if(s.charat(i - 1) != '0')

}return dp[len];

}}

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