fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void printEncodings(string str, string ans) {
  5.  
  6. // Base case
  7. if (str.length() == 0) {
  8. cout << ans << endl;
  9. return;
  10. }
  11.  
  12. // If first character is 0, no encoding is possible
  13. if (str[0] == '0') {
  14. return;
  15. }
  16.  
  17. // Take 1 digit
  18. int num = str[0] - '0';
  19. char ch = 'a' + num - 1;
  20.  
  21. printEncodings(str.substr(1), ans + ch);
  22.  
  23. // Take 2 digits
  24. if (str.length() >= 2) {
  25. int num2 = stoi(str.substr(0, 2));
  26.  
  27. if (num2 >= 10 && num2 <= 26) {
  28. char ch2 = 'a' + num2 - 1;
  29.  
  30. printEncodings(str.substr(2), ans + ch2);
  31. }
  32. }
  33. }
  34.  
  35. int main() {
  36.  
  37. string str;
  38. cin >> str;
  39.  
  40. printEncodings(str, "");
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0.01s 5228KB
stdin
1243
stdout
abdc
axc
ldc