解码方法。一条包含字母 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  |  |