トピック
一連の考え
定義されたメソッドの総数は dp 配列で、デフォルトは dp[0]=1 です;
dp[i] は最初の i 桁のデコードの総数を示します. これは主に 2 つの場合に分けられます:
i 桁目前の数字と組み合わせることはできません (1 つだけを単独で使用できます) ビット デコード)、
たとえば 1245、5 は個別にのみ変換できます。その場合、1245 のメソッド番号は 124
dp[i] = dp[i - 1]
i 番目の数値は、
1215 などの前の数値と組み合わせることができます (2 ビットで一緒にデコードできます)、5 は組み合わせるかどうかを選択でき、最終結果は 2 つの状況の加算です
。組み合わせ、15 を全体と見なす場合、dp[i] = dp[i - 2]
b. 組み合わせを選択しない、5 を個別に翻訳する場合、dp[i] = dp[i - 1]
コード
var translateNum = function(num) {
let i, dp = [1];
for(i = 1; num > 0; i++,num = Math.floor(num/10)) {
console.log(num)
console.log(num%100)
if(num%100 > 9 && num % 100 < 26) {
if(i === 1) {
dp[i] = 2;
} else {
dp[i] = dp[i - 1] + dp[i - 2];
}
} else {
dp[i] = dp[i - 1];
}
}
console.log(dp)
return dp[i - 1];
};