大於10是因為 可能存在0元素,如dfs506
, 只能是5-->06
而不能組成5->0->6
class solution
int tmp =0;
for(
int i=index;i
size()
;i++)}
}int
translatenum
(int num)
reverse
(arr.
begin()
,arr.
end())
;int res=0;
backtrack
(arr,
0,res)
;return res;}}
;
我們首先定義狀態變數,這種一維的問題,很容易直接定義dp[i]
表示前i個數字可以組成的字串,然後求dp[i+1]
可以表示的字串
狀態轉移方程:
我們首先分析一下,dp[i]
和幾個狀態有關
相當於跳台階,加了乙個限制動規
class
solution
reverse
(arr.
begin()
,arr.
end())
; vector<
int>
dp(arr.
size()
+1,0
);dp[0]
=1,dp[1]
=1;for
(int i=
2;i<=arr.
size()
;i++)}
return dp[arr.
size()
];}}
;
LeetCode 回溯 把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwfi ...
leetcode 把數字翻譯成字串(動態規劃)
題目描述 給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccf...
leetcode 把數字翻譯成字串(動態規劃)
給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。動態規劃可以模擬這道題,節省空間還借用了這道題的思想 class solution def tra...