如何判斷乙個序列是否為另乙個序列的出棧序列

2021-08-11 08:31:53 字數 383 閱讀 7326

借用乙個輔助的棧,遍歷壓棧順序,先講第乙個放入棧中,這裡是1,然後判斷棧頂元素是不是出棧順序的第乙個元素,這裡是4,很顯然1≠4,所以我們繼續壓棧,直到相等以後開始出棧,出棧乙個元素,則將出棧順序向後移動一位,直到不相等,這樣迴圈等壓棧順序遍歷完成,如果輔助棧還不為空,說明彈出序列不是該棧的彈出順序。

舉例:入棧1,2,3,4,5

出棧4,5,3,2,1

首先1入輔助棧,此時棧頂1≠4,繼續入棧2

此時棧頂2≠4,繼續入棧3

此時棧頂3≠4,繼續入棧4

此時棧頂4=4,出棧4,彈出序列向後一位,此時為5,,輔助棧裡面是1,2,3

此時棧頂3≠5,繼續入棧5

此時棧頂5=5,出棧5,彈出序列向後一位,此時為3,,輔助棧裡面是1,2,3

oracle中判斷乙個串中是否包含另乙個串

select decode instr corporateaaaa floor aaaa 0,0,1 from dualinstr方法的格式為 instr 源字串,目標字串,起始位置,匹配序號 例如 instr corporate floor or 3,2 中,源字串為 corporate floo...

判斷乙個序列是否為合法序列

1.1 問題描述 假設以1 和0 分別表示入棧和出棧操作。棧的初態和終態均為空,入棧和出棧的操作序列可表示為僅由1 和0 組成的序列,稱可以操作的序列為合法序列,否則稱為非法序列。寫出乙個演算法,判定所給的操作序列是否合法。若合法,返回1,否則返回0。輸入序列的長度不超過30個操作 1.2 輸入形式...

判斷乙個物件是否是另乙個的字首

題目 給出兩個int型的vector物件,編寫程式判斷乙個物件是否是另乙個物件的字首。如果兩個vector物件的長度不相同,假設較短的vector物件長度為n,則只對這兩個物件的前面n個元素做比較。例如,對於 0,1,1,2 和 0,1,1,2,3,5,8 這兩個vector,你的程式應該返回tru...