判断是否为正确出栈顺序
bool fun(vector<int>& track, vector<int>& nums) {
stack<int> t;
int i = 0,j=0;
for (int i = 0; i < nums.size();i++) {
if (t.empty()||t.top() != track[j]) {
t.push(nums[i]);
}
else {
t.pop();
j++,i--;//使得i的值在下一循环不变
}
}
while (!t.empty()&&t.top() == track[j]) {
//判断条件有top()这种一定要加越界判断,且写在top()判断句前面
t.pop();
j++;
}
return t.empty();
}
//nums为进栈顺序,判断track是否合理。