91. Decode Ways
https://www.cnblogs.com/grandyang/p/4313384.html
当前位置只可能来自前一个位置和前两个位置的dp,来自前一个位置的话,当前的数字不能是0;来自前两个位置,必须是1到26之间
class Solution { public: int numDecodings(string s) { if(s.empty()) return 0; vector<int> dp(s.size() + 1); dp[0] = 1; for(int i = 1;i <= s.size();i++){ if(s[i-1] != '0') dp[i] += dp[i-1]; if(i >= 2 && (s[i-2] == '1' || (s[i-2] == '2' && s[i-1] <= '6'))) dp[i] += dp[i-2]; } return dp[s.size()]; } };