力扣 解碼方法

2021-10-10 19:55:45 字數 657 閱讀 3863

一條包含字母 a-z 的訊息通過以下方式進行了編碼:

'a' -> 1

'b' -> 2

...'z' -> 26

給定乙個只包含數字的非空字串,請計算解碼方法的總數。

示例 1:

輸入: "12"

輸出: 2

解釋: 它可以解碼為 "ab"(1 2)或者 "l"(12)。

示例 2:

輸入: "226"

輸出: 3

解釋: 它可以解碼為 "bz" (2 26), "vf" (22 6), 或者 "bbf" (2 2 6) 。

如果當前位為0,則必須和前一位結合進行解碼(0無法自己解碼),此時有dp[n-2]種方式(假設前i位有dp(i)種方式)

如果當前位為1-9,有兩種情況

1、單獨解碼,此時有dp[n-1]種方式

2、和前一位結合解碼,此時有dp[n-2]種方式。(這種解碼方式需要滿足前一位和當前位結合在1-26之間)

所以狀態轉移方程為dp[i] = dp[i-1] + dp[i-2](滿足一定條件時,不滿足則為dp[i] = dp[i-1] )

class solution 

return dp[n - 1];

}

力扣 字串解碼

給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...

力扣394 字串解碼

這道題主要涉及的是對遞迴和棧的理解。給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格...

力扣移動零

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。下面展示一些內聯 片。a code block var foo bar clas...