有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。
现在给一串数字,返回有多少种可能的译码结果
输入:"12"
返回值:2种可能的译码结果(”ab” 或”l”)
其实这道题目很像爬楼梯,一次能爬一层和爬两层,只是爬的过程中增加了一些限定条件,只要将这些限定条件屡清楚则可以完全搞懂这类题目
dp[i]:表示前i个字符有多少种译码结果
dp[i]=dp[i-1](如果最后一个字符是合法编码)+dp[i-2](如果最后两个字符是合法编码)
dp[0]=1;
dp[1]=1(且nums.charat[0]!='0')