题目是栈操作
#include "bits/stdc++.h" using namespace std; int main() { string m; while(cin >> m) { stack<int>b; int len = m.length(); for(int i=0,k = 1;i < len ;i++){ if(m[i] == 'P'){ b.push(k++); } else { if(!b.empty()){ cout << b.top() << " "; b.pop(); } else { cout << "error"; break; } } } cout << endl; } }
最后发现是在输出error后没有及时的break,造成后续的输出,比较欣慰的是oj提出了“输出超限”的提示,找到了问题所在。