91 Decode Ways(解碼方式)

2021-08-11 08:26:39 字數 1170 閱讀 2392

參考**

『a』 -> 1

『b』 -> 2

… 『z』 -> 26

given an encoded message containing digits, determine the total number of ways to decode it.

for example,

given encoded message"12", it could be decoded as"ab"(1 2) or"l"(12).

the number of ways decoding"12"is 2.

這道題大體思路很簡單,主要問題是0的處理:

對於s中的第i個字元s[i],若s[i]不是0,那麼s[i]可以作為乙個單獨的符號解碼;若s[i]0,那麼s[i]必須和s[i-1]組合起來解碼。

如果s[i-1]s[i]組合起來屬於[10, 26],那麼可以作為2位數解碼, 反之不能。

演算法描述

遍歷s,對s[i]

s[i] = 0 && 10 <= s[i-1]s[i] <= 26: n[i] = n[i - 2]

1 <= s[i] <= 9 && 10 <= s[i-1]s[i] <= 26: n[i] = n[i - 1] + n[i - 2]

1 <= s[i] <= 9 && !(10 <= s[i-1]s[i] <= 26): n[i] = n[i - 1]

其他情況說明不能解碼,直接返回0

class solution  else

if (s[i - 2] == '0') else

}return n[s.size()];

}};

91 Decode Ways 翻譯數字

a 1 b 2 z 26given anon emptystring containing only digits,determine the total number of ways to decode it.example 1 input 12 output 2 explanation it c...

91 解碼方法

方法一 動態規劃法 該問題可以通過動態規劃的方法進行求解,我們假設s i 代表一條長度為i的訊息,對應的解碼方法的總數為dp i 那麼這個值的大小和dp i 1 以及dp i 2 相關,因為解碼時只有一位或者兩位字元可以作為乙個原碼看待。當我們假設這條訊息的最後一位作為原碼時,它的取值範圍為 1 9...

91 解碼方法

一條包含字母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 或者 b...