一條包含字母 a-z 的訊息通過以下方式進行了編碼:這道題思路主要是考察動態規劃,設d[i]為以索引號i為結尾的字串所解碼的總數,總體可以分為三種情況:1.當前位為0時。2. 當前位和前一位無法形成有效數字。3.當前位和前一位可以形成有效數字『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) 。
/**
* @param s
* @return
*/var
numdecodings
=function
(s)else
}else
if(s[i-1]
==='0'
||parseint
(s[i-1]
)*10+
parseint
(s[i]
)>26)
else
}return d[s.length -1]
;};
91 解碼方法
方法一 動態規劃法 該問題可以通過動態規劃的方法進行求解,我們假設s i 代表一條長度為i的訊息,對應的解碼方法的總數為dp i 那麼這個值的大小和dp i 1 以及dp i 2 相關,因為解碼時只有一位或者兩位字元可以作為乙個原碼看待。當我們假設這條訊息的最後一位作為原碼時,它的取值範圍為 1 9...
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 或者 b...
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 或者 bb...