Decode Ways, decodeways
A message containing letters fromA-ZIs being encoded to numbers using the following mapping:
'A' -> 1'B' -> 2...'Z' -> 26
Given an encoded message containing digits, determine the total number of ways to decode it.
For example,
Given encoded message"12", It cocould be decoded"AB"(1 2) or"L"(12 ).
The number of ways decoding"12"Is 2.
String processing, trying to reverse the order, not made. Order only
class Solution {public: int numDecodings(string s) { if(s.empty()) return 0; int len = s.length(); int f[len]; for(int i = 0; i < len; i++) { if(s[i] < '0' || s[i] > '9') return 0; else if(s[i] == '0'){ if(i == 0 || s[i-1] == '0' || s[i-1] > '2') return 0; else f[i] = i > 1 ? f[i-2] : 1; } else { if(i > 0 && s[i-1] == '1' || s[i-1] == '2' && s[i] <= '6' ) f[i] = (i > 0 ? f[i-1] : 1) + (i > 1 ? f[i-2] : 1); else f[i] = i > 0 ? f[i-1] : 1; } } return f[len-1]; }};