非常典型的DP问题。dp[i]= dp[i-2] (如果最后两位合法) + dp[i-1] (如果最后一位合法)
最后两位合法存在,指的是数字在10和26之间;最后一位合法存在,指的是不能为0.
为了方便书写,可以将字符串额外在首端添加一个零。这样dp[i]表示的就是s[i]的第i位所代表的结果,且dp[0]是边界条件。
另外特别注意的是:
- 边界条件dp[0]=1而不是0.
- dp[1]需要单独计算。dp[2]以后可以有通用表达式。
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
非常典型的DP问题。dp[i]= dp[i-2] (如果最后两位合法) + dp[i-1] (如果最后一位合法)
最后两位合法存在,指的是数字在10和26之间;最后一位合法存在,指的是不能为0.
为了方便书写,可以将字符串额外在首端添加一个零。这样dp[i]表示的就是s[i]的第i位所代表的结果,且dp[0]是边界条件。
另外特别注意的是: