題目描述
演算法分析
f(r)表示以r為開始(r最小取0)到最右端所組成的數字能夠翻譯成字串的種數。對於長度為n的數字,f(n)=0,f(n-1)=1,求f(0)。
遞推公式為 f(r-2) = f(r-1)+g(r-2,r-1)*f(r);
其中,如果r-2,r-1能夠翻譯成字元,則g(r-2,r-1)=1,否則為0。
因此,對於12258:
f(5) = 0
f(4) = 1
f(3) = f(4)+0 = 1
f(2) = f(3)+f(4) = 2
f(1) = f(2)+f(3) = 3
f(0) = f(1)+f(2) = 5
提交**:
class solution
int gettranslationcountcore(const string &number)
}counts[i] = count;
} return counts[0];
}};
測試**:
// ********************測試**********************
void test(const string& testname, int number, int expected)
void test1()
void test2()
void test3()
void test4()
void test5()
void test6()
void test7()
void test8()
void test9()
int main(int argc, char* argv)
46 把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwf...
46 把數字翻譯成字串
題目 給定乙個數字,我們按照如下規則把它翻譯為字串 0翻譯成 a 1翻譯成 b 25翻譯成 z 乙個數字可能有多個翻譯。請實現乙個函式,計算乙個數字有多少種不同的翻譯方法。def digit to string num num str num length len num res 0 length ...
劍指 把數字翻譯成字串
1,題目 2,思路 動態規劃 dp i xi 屬於 10,25 dp i 1 10x xi 屬於 1,10 並上 25,99 方法一 字串遍歷 動態規劃 從左向右遍歷 方法二 字串遍歷 動態規劃 從左向右遍歷 此題的動態規劃計算是 對稱的 即 從左向右遍歷 從第 dp 2 計算至 dp n 和 從右...