栈 | ||||||
| ||||||
Description | ||||||
给定一个从1开始的连续整数列1、2、3、4......n。 将上述数列按顺序入栈,中途栈顶元素可以出栈。 再给定一个出栈序列,判断此序列是否合法。
例如,将n设为4。即得到数列1、2、3、4。 再给定出栈序列1、3、4、2。 可以看出,此出栈序列合法。 过程如下,先将数列1、2、3、4中的元素1入栈,再将其出栈。 然后将元素2、3入栈,将元素3出栈。 最后将元素4入栈,再把栈内的仅余元素4、2出栈。
整个过程中,元素按照1、3、4、2的顺序出栈。证明其合法。 | ||||||
Input | ||||||
输入包括多组测试用例。 对于每组测试用例,第一行包含一个整数n<100,代表从1开始的连续整数列长度。 第二行包含一个长度为n的数列,代表出栈序列。出栈序列的各元素在区间[1,n]内且不重复。 | ||||||
Output | ||||||
若出栈序列合法,则输出Yes。 否则,输出No。 | ||||||
Sample Input | ||||||
4 1 3 4 2 | ||||||
Sample Output | ||||||
Yes | ||||||
Hint | ||||||
"Yes","No"注意大小写
首先要明确1-n个数 进栈的顺序是确定的,而出栈顺序不同,进栈过程中,当发现该出栈元素时,不得不让他出栈,然后判断此时栈顶元素是否和下一个该出栈 元素相同。那么理论上到最后栈应该为空才合法。
|
栈
最新推荐文章于 2024-01-08 21:36:17 发布