栈
| 栈 | ||||||
|
||||||
| 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个数 进栈的顺序是确定的,而出栈顺序不同,进栈过程中,当发现该出栈元素时,不得不让他出栈,然后判断此时栈顶元素是否和下一个该出栈 元素相同。那么理论上到最后栈应该为空才合法。
|


浙公网安备 33010602011771号