题目:
分析:
后悔看标签了,一个栈就ko了。
代码:
int main()
{
stack<int> s;
vector<int> A;
vector<int> B;
for(int i=0;i<A.size();i++)
{
if(s.empty()||A[i]>0||s.top()<0)
{
s.push(A[i]);
continue;
}
//当前为 - 且 栈的首部为 + ,
while(1)
{
if(s.empty()||s.top()<0){
s.push(A[i]);
break;
}
if(s.top()==-A[i]) {
s.pop();
break;
}
if(s.top()<-A[i])
{
s.pop();
}
else{
break;
}
}
}
if(s.empty()) return B;
B.push_back(s.top());
s.pop();
while(!s.empty())
{
B.insert(B.begin(),s.top());
s.pop();
}
return B;
}