Decode Ways LeetCode solution in C++
1class Solution {2public:3int numDecodings(string s) {4if (s[0] == 0) return 0;5int n = s.length();6vector<int> dp(n + 1, 0);78// Storing DP[n-1]9if (s[n - 1] == '0')10dp[n - 1] = 0;11else12dp[n - 1] = 1;1314if (n == 1) return dp[0];1516// Storing DP[n-2]17if (s[n - 2] == '0')18dp[n - 2] = 0;19else {20string temp;21temp.push_back(s[n - 2]);22temp.push_back(s[n - 1]);2324int x = stoi(temp);25if (x < 27) dp[n - 2] = 1;26dp[n - 2] += dp[n - 1];27}2829for (int i = n - 3; i >= 0; i--) {30if (s[i] == '0') continue;3132string temp;33temp.push_back(s[i]);34temp.push_back(s[i + 1]);3536int x = stoi(temp);37if (x < 27) dp[i] = dp[i + 2];38dp[i] += dp[i + 1];39}4041return dp[0];42}43};