fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. bool isMyStackHasTop(string myStack, int myStackSize, char top)
  7. {
  8. if (myStackSize == 0) return false;
  9. else if (myStack[myStackSize - 1] == top) return true;
  10. else return false;
  11. }
  12.  
  13. int main()
  14. {
  15. string input;
  16.  
  17. while (cin >> input)
  18. {
  19. int size = input.size(); //總Size
  20.  
  21. char top = size + 64;
  22.  
  23. int inputSize = input.size();
  24. string myStack = "";
  25. int myStackSize = myStack.size();
  26. string resultStack = "";
  27. int resultStackSize = resultStack.size();
  28.  
  29. string result[52];
  30.  
  31. int count = 0;
  32.  
  33. while (1)
  34. {
  35. if (isMyStackHasTop(myStack, myStackSize, top))
  36. {
  37. resultStack += top;
  38. resultStackSize++;
  39. myStack[myStackSize - 1] = 0;
  40. myStackSize--;
  41. if (myStackSize == 0)myStack = "";
  42.  
  43. result[count] = "push ";
  44. result[count] += top;
  45. result[count] += ' ';
  46.  
  47. top--;
  48. }
  49. else
  50. {
  51. if (inputSize == 0 && !isMyStackHasTop(myStack, myStackSize, top)) break;
  52. bool j = true;
  53. for (int i = 0; i < myStack.size(); i++)
  54. {
  55. if (myStack[i] == 0)
  56. {
  57. myStack[i] = input[inputSize - 1];
  58. j = false;
  59. break;
  60. }
  61. }
  62. if (j) myStack += input[inputSize - 1];;
  63. myStackSize++;
  64. input[inputSize - 1] = 0;
  65. inputSize--;
  66.  
  67. result[count] = "pop ";
  68. result[count] += myStack[myStackSize - 1];
  69. result[count] += ' ';
  70. }
  71.  
  72. if (count == 2 * size - 1) break;
  73. count++;
  74. }
  75. string test = "";
  76. for (int i = size; i > 0; i--)
  77. {
  78. test += (64 + i);
  79. }
  80. //cout << test;
  81. if (test == resultStack)
  82. {
  83. cout << "YES\n";
  84. for (int i = 51; i >= 0; i--)
  85. {
  86. if (result[i] != "")cout << result[i];
  87. }
  88. cout << "\n";
  89. }
  90. else cout << "No\n";
  91. }
  92. }
Success #stdin #stdout 0s 4504KB
stdin
Standard input is empty
stdout
Standard output is empty