fork(14) download
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. int countDecodingDP(char *digits, int n)
  7. {
  8. int NoOfWays[n+1];
  9. NoOfWays[0]=1;
  10. NoOfWays[1]=1;
  11.  
  12. for (int i = 1; i <= n; i++)
  13. {
  14. int q=digits[i]-48;
  15. int p=digits[i-1]-48;
  16. //to convert to digit
  17.  
  18. if (q <= 26 && q > 0) NoOfWays[ i+1 ] = NoOfWays[ i ];
  19. if ((q + p*10) <= 26 && (q + p*10)>0 ) NoOfWays[ i+1 ] += NoOfWays[ i - 1 ];
  20. cout << p <<"--"<< q <<"--"<< i<<"--"<<NoOfWays[i+1]<<endl;
  21. }
  22. return NoOfWays[n+1];
  23. }
  24.  
  25. int main()
  26. {
  27. char digits[] = "1212";
  28. int n = strlen(digits);
  29. cout << "Count is " <<digits<<"="<< countDecodingDP(digits, n)<<endl;
  30.  
  31. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
1--2--1--2
2--1--2--3
1--2--3--5
2---48--4--11104
Count is 1212=11104