class Solution {
public:
int numDecodings(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (s.size()==0) {
return 0;
}
vector<int> way(s.size()+1, 1);
for (int i=s.size()-1; i>=0; i--) {
if (s[i]!='0') {
way[i]=way[i+1];
}else {
way[i]=0;
}
if (s.size()-i>1 && (s[i]=='1' || (s[i]=='2' && s[i+1]>='0' && s[i+1]<='6'))) {
way[i]+=way[i+2];
}
}
return way[0];
}
};
DP Iteration