劍指offer 合法的出棧序列

2021-08-01 22:42:35 字數 509 閱讀 7101

題目:[合法的出棧序列]

這個題我模擬了,寫的有點麻煩。

基本思路是考慮出棧序列,對於每乙個出棧元素,進行模擬,因為如果當前元素要出棧,那麼證明他以及他之前的元素都在棧內。所以,將之前的元素入棧即可。

可以寫如下判斷邏輯:

1.如果當前出棧元素在棧裡面(其實用集合判斷),只需判斷棧頂和當前出棧元素是否一樣。如果不一樣,返回false.

2.如果當前出棧元素不在棧裡面,只能是從入棧的序列裡面進行掃瞄,直到遇到當前元素,一直入棧。

這個有個異常資料就是如果入棧序列和出在序列裡面存在不同的元素,這個是我之前沒有考慮到的。比如[1,2],[2,3]

class solution 

if( j == sz_push )

return

false;

stk.pop();

++j;

}else

}return

true;

}};

劍指Offer 數字出棧入棧

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

劍指Offer22 出棧序列判定問題

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等,例如序列1 2 3 4 5是某棧的壓入棧序列,序列4 5 3 2 1是該壓棧序列對應的乙個彈出序列,但是4 3 5 1 2就不可能是該壓棧序列的彈出序列了。建立輔助棧,把輸入的第乙個序列...

棧 出棧序列合法判斷 C

題目給定乙個從1開始的連續整數列1 2 3 4 n。將上述數列按順序入棧,中途棧頂元素可以出棧。再給定乙個出棧序列,判斷此序列是否合法。例如,將n設為4。即得到數列1 2 3 4。再給定出棧序列1 3 4 2。可以看出,此齣棧序列合法。過程如下,先將數列1 2 3 4中的元素1入棧,再將其出棧。然後...