3 5判斷出棧和入棧操作序列是否合法

2021-07-13 03:43:22 字數 519 閱讀 6447

題目描述:

假設以i和o分別表示入棧和出棧操作,棧的初試狀態和終態都是空,出棧和入棧序列僅有i和o組成。

稱可以操作的序列為合法序列,否則為非法序列。

寫乙個演算法判斷乙個給定的序列是否合法。若合法返回true,否則返回false.

題目分析:

乙個由出棧操作和入棧操作組成的序列,要是合法序列應該滿足:

1.入棧的操作次數大於等於出棧操作的次數;

2.當遇到每個出棧操作時,判斷入棧操作的次數是否大於等於出棧操作的次數。因為每個出棧操作的狀態下,入棧操作的次數一定不小於出棧操作的次數。

int judge(char str)

} i++;//無論出棧還是入棧,指標都要後移

if(counti>=counto)

} }

int judge2(char str)

}} }

if(counti>=counto)

}

給定入棧序列判斷給定出棧序列是否合法

題目 輸入兩個整數序列。其中乙個序列表示棧的入棧順序,判斷另乙個序列有沒有可能是對應的出棧順序。思路 用乙個輔助棧,將入棧序列按照某種順序入棧,看是否可以產生出棧序列即可。1 如果當前棧為空,且入棧序列不空,則入棧序列的下乙個元素入棧 2 如果當前輔助棧的棧頂元素不等於出棧序列的首元素,那麼入棧序列...

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

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

由入棧 出棧序列求所有出棧 入棧序列

給出乙個陣列,代表入棧順序,求所有出棧可能性?給出乙個陣列,代表出棧順序,求所有入棧可能性?這兩題解法相同,可利用全排列求出所有組合,再進行可能性分析。全排列 如下 public list permute int nums 這種方法是什麼意思呢?例如abc,在第0位有三種可能,axx,bxx,cxx...