【leetcode 动态规划 C++】91. Decode Ways

91. Decode Ways

在这里插入图片描述

class Solution {
    
    
public:
    int numDecodings(string s) {
    
    
        if(s.size() == 0 || s[0] == '0') return 0;
        if(s.size() == 1) return 1;
        vector<int> DP(s.size(), 0);
        DP[0] = 1;
        for(int ii = 1; ii < s.size(); ii++) {
    
    
            int one = s[ii] - '0';
            int two = (s[ii-1] - '0') * 10 + one;
            if(two >= 10 && two <= 26) DP[ii] += ii == 1 ? 1 : DP[ii-2];
            if(one >= 1 && one <= 9) DP[ii] += DP[ii-1];
        }
        return DP[s.size()-1];
    }
};

猜你喜欢

转载自blog.csdn.net/m0_37454852/article/details/113893906