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];
}
};
【leetcode 动态规划 C++】91. Decode Ways
猜你喜欢
转载自blog.csdn.net/m0_37454852/article/details/113893906
今日推荐
周排行