是否為合法的入棧序

2021-09-24 01:29:41 字數 403 閱讀 4061

題目:

已知兩個字母序列,乙個是入棧序,乙個是出棧序,把入棧序列按出現順序壓入乙個棧,在入棧的任意過程中,允許棧中的字母出現,所有字母都是由大小寫組成,並且不重複出現。現在需要判斷已知的出棧序是不是合法的。

分析:借助乙個棧,根據入棧序和出棧序模擬給定過程,拿著入棧序看此時要不要出棧,如果全過程模擬完畢順利(入棧序走完,並且棧為空)說明合法,否則說明不合法。

//檢查入隊出隊序列

#include void is_valid()

} //此時當棧為空時,說明都匹配完了

if (s.empty())

cout << "y" << endl;

else

cout << "n" << endl;

}}

檢驗入棧序列 出棧序列是否合法

題目 元素出棧 入棧順序的合法性。如 入棧的序列 1,2,3,4,5 出棧序列為 4,5,3,2,1 則合法。入棧的序列 1,2,3,4,5 出棧序列為 4,5,2,3,1 則不合法。思路 借用乙個輔助棧,先按照入棧順序push,直到棧頂元素和出棧序列相等就pop,以此類推,最後棧為空且兩個序列都被...

合法入棧順序

題目描述 我們知道,乙個入棧序列是的合法出棧序列有,等,而是不合法的.現在冰語有乙個長度為n的序列a 保證序列內數字唯一,且1 a i n 他想知道這個序列是不是入棧順序的合法出棧序列,你能告訴他麼?輸入 第一行為t,表示樣例個數 每個樣例第一行為n,第二行為n個數 1 t 1e4,3 n 100 ...

根據入棧順序判斷出棧順序是否合法

題目描述 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。思路 先將入棧序列放入佇列...