q:一條僅包含字母『a』-『z』的訊息用下列的方式加密成數字
'a' -> 1↵'b' -> 2↵...↵'z' -> 26
現在給出加密成數字的密文,請判斷有多少種解密的方法
例如:給出的密文為「12」,可以解密為"ab"(1 2) 或者"l"(12).
所以密文"12"的解密方法是2種.
a:分兩種情況。
當前位置 s[i]>='1' && <= '9',當前位置可單獨作為乙個解,dp[i]+=dp[i-1];
當前和前面兩個位置 s[i-1 - i] >= 10 && <= 26,兩個也可為乙個解,dp[i]+=dp[i-2];
public static int numdecodings(string s)
return dp[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...