【DP】递推【91. Decode Ways】

题目链接:https://leetcode.com/problems/decode-ways/#/description

class Solution {
public:
    int numDecodings(string s) {
        int len=s.size();
        if(len==0||s[0]=='0') return 0;
        vector dp(len);
        dp[0]=1;
        for(int i=1;i'2') return 0;
                else dp[i]=(i==1?1:dp[i-2]);
            }else{
            //  添加一个数不是0;
                //  前一个数不是0;
                if(s[i-1]!='0'){
                    if(s[i-1]=='1'||(s[i-1]=='2'&&s[i]<'7')) dp[i]=(i==1?2:dp[i-1]+dp[i-2]);   //  可合成
                    else dp[i]=dp[i-1];
                }else{
                //  前一个数是0;
                    dp[i]=dp[i-1];
                }
            }
        }
        return dp[len-1];
    }
};


你可能感兴趣的:(【leetcode】,动态规划)