2021天梯赛L2-1(栈)
L2-037 包装机题目链接https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId1386335159927652360page1本题主要考察栈的运用按照题目要求一步步走就没什么问题小经验一般L2-1都比较喜欢考栈一个避坑点我一开始写while循环的时候把cinop写在了循环里面导致提交的时候有一些用例会超时建议把cinop的操作放在while循环的括号里这样不会出问题具体代码如下#includebits/stdc.h using namespace std; int main(){ int N,M,Smax; cinNMSmax; vectorqueuechar res(N1);//vector数组中可以是queue元素 for(int i1;iN;i){ string s; cins; for(auto c:s ){//注意这种写法简单方便 res[i].push(c); } } stackchar blanket; vectorchar result; int op; //这样写while循环不容易出现死循环如果放在函数体里面写的话可能会出现死循环导致运行超时 while(cinop (op!-1)){ if((res[op].empty() (op!0)) || (blanket.empty() (op0))){ continue; } else if(!res[op].empty() (op!0)){ if(blanket.size()Smax){ result.push_back(blanket.top()); blanket.pop(); blanket.push(res[op].front()); res[op].pop(); } else{ blanket.push(res[op].front()); res[op].pop(); } } else if(!blanket.empty() (op0)){ result.push_back(blanket.top()); blanket.pop(); } } for(int i0;iresult.size();i){ coutresult[i]; } return 0; }