题目
提供两个元素的集合,一个是元素入栈的顺序,另一个是元素出栈的顺序。设计一个函数,判断两个元素集合是否满足入栈出栈的规则。如:入栈顺序:“12345”,出栈顺序是:“54321”,这样就是符合要求的。如果出栈顺序是:“51234”,这样不符合要求。
思路
根据题目的要求,就是判断两数组是否满足出栈入栈的顺序。可以这样做:1、先按照入栈顺序的集合进行入栈。2、在入栈的同时,跟出栈顺序的元素进行比较。如果相同就将入栈的元素pop出来。3、结束的时候,如果栈为空,说明两者的入栈顺序和出栈顺序可以匹配,那么就是符合要求的;如果栈不为空,那就是不符合要求。
还有一点:如果两元素的个数不一样或者同时为空,直接判定不符合要求。
代码实现
#include <iostream>
#include <stack>