2-10 [搞定!]出栈序列的合法性 (20 分)
生活随笔
收集整理的這篇文章主要介紹了
2-10 [搞定!]出栈序列的合法性 (20 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個最大容量為 M 的堆棧,將 N 個數字按 1, 2, 3, …, N 的順序入棧,允許按任何順序出棧,則哪些數字序列是不可能得到的?例如給定 M=5、N=7,則我們有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。
輸入格式:
輸入第一行給出 3 個不超過 1000 的正整數:M(堆棧最大容量)、N(入棧元素個數)、K(待檢查的出棧序列個數)。最后 K 行,每行給出 N 個數字的出棧序列。所有同行數字以空格間隔。
輸出格式:
對每一行出棧序列,如果其的確是有可能得到的合法序列,就在一行中輸出YES,否則輸出NO。
輸入樣例:
5 7 5 1 2 3 4 5 6 7 3 2 1 7 5 6 4 7 6 5 4 3 2 1 5 6 4 3 7 2 1 1 7 6 5 4 3 2輸出樣例:
YES NO NO YES NO借鑒了https://blog.csdn.net/wenqiang1208/article/details/75578653的思路
直觀的思路就是將入棧序列一個一個入棧,與出棧序列相比較,一樣就出棧,不一樣就繼續入棧,當入棧序列和出棧序列都為空時,表示出棧順序合法。
——https://blog.csdn.net/wenqiang1208/article/details/75578653
需要倒一下待判斷的序列,先將3 2 1 7 5 6 4入棧,再依次出棧,并入新棧,獲得棧底為4->棧頂為3。
以下為本題的實現
總結
以上是生活随笔為你收集整理的2-10 [搞定!]出栈序列的合法性 (20 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python django部署docke
- 下一篇: vue调用顺序(初学版) index.h