2-10 [搞定!]出栈序列的合法性 (20 分)
給定一個最大容量為 M 的堆棧,將 N 個數(shù)字按 1, 2, 3, …, N 的順序入棧,允許按任何順序出棧,則哪些數(shù)字序列是不可能得到的?例如給定 M=5、N=7,則我們有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。
輸入格式:
輸入第一行給出 3 個不超過 1000 的正整數(shù):M(堆棧最大容量)、N(入棧元素個數(shù))、K(待檢查的出棧序列個數(shù))。最后 K 行,每行給出 N 個數(shù)字的出棧序列。所有同行數(shù)字以空格間隔。
輸出格式:
對每一行出棧序列,如果其的確是有可能得到的合法序列,就在一行中輸出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的思路
直觀的思路就是將入棧序列一個一個入棧,與出棧序列相比較,一樣就出棧,不一樣就繼續(xù)入棧,當(dāng)入棧序列和出棧序列都為空時,表示出棧順序合法。
——https://blog.csdn.net/wenqiang1208/article/details/75578653
需要倒一下待判斷的序列,先將3 2 1 7 5 6 4入棧,再依次出棧,并入新棧,獲得棧底為4->棧頂為3。
以下為本題的實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的2-10 [搞定!]出栈序列的合法性 (20 分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python django部署docke
- 下一篇: ArcMap 如何使用.gdb文件发布服