题目:

讯享网
代码:

class Solution {
public: int numDecodings(string s) {
int n=s.size(); int temp,a,b; if(s[0]=='0') return 0; a=1; if(n==1) return 1; if(s[1]=='0'){
if(s[0]=='1'||s[0]=='2') b=1; else return 0; } else if(s[1]=='7'||s[1]=='8'||s[1]=='9'){
if(s[0]=='1') b=2; else b=1; } else {
if(s[0]=='1'||s[0]=='2') b=2; else b=1; } for(int i=2;i<n;i++){
if(s[i]=='0'){
if(s[i-1]=='1'||s[i-1]=='2') temp=a; else return 0; } else if(s[i]=='7'||s[i]=='8'||s[i]=='9'){
if(s[i-1]=='1') temp=a+b; else temp=b; } else {
if(s[i-1]=='1'||s[i-1]=='2') temp=a+b; else temp=b; } a=b;b=temp; } return b; } };
讯享网
思路:采用动态规划,考虑清楚状态转移方程以及初始条件即可。
运行结果:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/72878.html