Leetcode 91 解碼方法

2021-10-01 12:39:11 字數 754 閱讀 3282

題目描述:

思路:

dp[i]表示前i個字元的解碼方式。那麼考慮加進來的第i個字元,如果i個字元可以自己構成乙個資訊,也就第i個不等於0,那麼dp[i] = dp[i-1],如果i和i-1合在一起還能表示乙個資訊,那麼這時,dp[i] = dp[i-2]

所以考慮上面的情況,我們可以分析得出,當第i個字元不等於0的時候,最少dp[i] = dp[i-1],如果i和i-1還能構成乙個資訊,也就是在11-19到21-26之間的時候,自然dp[i] = dp[i-1]+ dp[i-2].

public class solution 

int nums = new int[s.length() + 1];

nums[0] = 1;

nums[1] = s.charat(0) != '0' ? 1 : 0;

for (int i = 2; i <= s.length(); i++)

int twodigits = (s.charat(i - 2) - '0') * 10 + s.charat(i - 1) - '0';

if (twodigits >= 10 && twodigits <= 26)

}return nums[s.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...