LeetCode 回溯 把數字翻譯成字串

2022-08-20 08:33:10 字數 655 閱讀 5149

給定乙個數字,我們按照如下規則把它翻譯為字串:0 翻譯成 「a」 ,1 翻譯成 「b」,……,11 翻譯成 「l」,……,25 翻譯成 「z」。乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。

示例:

輸入: 12258

輸出: 5

解釋: 12258有5種不同的翻譯,分別是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"

這題的意思就是現在有 "1"~"25" 這 25 個字串,問使用這 25 個字串拼成給定的數字有多少種拼法。可以使用回溯來做。

首先找到乙個可以劃分的位置,然後從這個位置的下乙個位置進行遞迴。要注意,當字串中包含 0 時,普通的回溯會出現重複,例如,輸入為 "306",回溯會把 "06" 和 "6" 當成兩種不同的情況。為了解決這個問題,只有當當前子串對應的數字小於等於 25 時:

**如下:

class solution 

void dfs(string s, int start, int& cnt)

for(int i=start; i1 && ss[0]!='0')))else return;}}

};

leetcode 數字翻譯

給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwf...

leetcode 面試題46把數字翻譯成字串

解題思路 動態規劃,1 得到num的每一位數字,從低位到高位用nums儲存 2 從低位到高位依次求解,狀態轉移方程如下 d p i dp i 1 dp i 2 10 leq nums i 10 nums i 1 26 dp i 1 others end right.dp i dp i 1 dp i ...

leetcode 把數字翻譯成字串(動態規劃)

題目描述 給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccf...