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

2021-10-07 00:05:44 字數 1026 閱讀 8952

題目鏈結

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

class

solution

vector<

int> nums;

while

(num)

int len = nums.

size()

; vector<

int>

res(len)

; res[len -1]

=1;if

((nums[len -1]

==1)||

((nums[len -1]

==2)&&

(nums[len -2]

<6)

))else

for(

int i = len -

3; i >=0;

--i)

else

}return res[0]

;}};

執行結果:通過

執行用時 : 0 ms, 在所有 c++ 提交中擊敗了100.00%的使用者

記憶體消耗 : 6.1 mb, 在所有 c++ 提交中擊敗了100.00%的使用者

本道題很簡單,是乙個動態規劃問題,通過判斷當前數字與前乙個數字是否可以組成字母來進行狀態轉移,如果可以,則當前值等於前兩個值之和,如果不行,就等於前乙個值。

class

solution

return dp[str.

size()

];}}

;

範例和我一樣,不過細節方面比我處理的要好。

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面試題46把數字翻譯成字串

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

leetcode 面試題45 把陣列排成最小的數

解題思路 這道題的關鍵就在於如何重新定義排序規則,對待排序的字串x和y,如果 x y 構成的字串小於 y x 構成的字串,自然x應當排在y前面,反之亦然 class solution def minnumber self,nums list int str defcmp x,y if x y y x...