解码方法。一条包含字母 A-Z
的消息通过以下方式进行了编码:
1 |
|
给定一个只包含数字的非空字符串,请计算解码方法的总数。
示例 1:
1 |
|
示例 2:
1 |
|
思路一
动态规划。dp[i]
表示s[0:i]
编码方法的数目,则当只有s[i-1:i]
或s[i]
能组成合法编码时,dp[i] = dp[i-2]
或 dp[i] = dp[i-1]
,当 s[i-1:i]
和 s[i]
都能组成合法编码时,dp[i] = dp[i-2] + dp[i-1]
。时间复杂度 \(O(n)\)。
1 |
|
思路二
动态规划,但是不申请额外的空间,类似斐波那契数列。
1 |
|