給定兩個序列,分別為入棧序列和出棧序列,判斷出棧序列是否合理, 注:入棧時可能不是一次性全部入棧,也可能不是一次性全部出棧例如——
輸入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
輸出:false
解釋:1 不能在 2 之前彈出。
首先確定要排除特殊情況,比如給定序列為空或者給定的序列長度是否越界
其次,將入棧序列依次入棧
1)判斷出棧序列是否與當前棧頂元素相同,如果相同則刪除棧頂元素, 棧頂指標回退;
判斷棧頂指標是否指向-1,若指向-1,則返回true,否則返回false;
我們具體操作的還是陣列,只是使用的是對棧操作時的邏輯結構,比如說bool validatestacksequences
(int
* pushed,
int pushedsize,
int* popped,
int poppedsize)
if(poppedsize>
1000
||pushedsize>
1000
)//宣告乙個陣列
int stacked[
1000]=
;//棧頂指標
int stacktop=-1
;// 當前入棧數
int pushstacked=0;
//當前出棧數
int popstacked=0;
while
(pushstacked(stacktop==-1
)return false;
}
棧頂指標啦,加上棧頂指標指向的話會好理解很多。
每日演算法 4月14日 05
我有話想說.今天本來想再鞏固一下棧的基礎,去leedcode去做了關於棧的練習,結果因為一句 是在操作完之後沒有將top值還原 搞到心態炸了!太難了,各位仁兄寫 一定一定要考慮全面。否則你就是下乙個心態 的我 幸災樂禍 好啦,言歸正傳 請你設計乙個支援下述操作的棧。實現自定義棧類 customsta...
11月4日筆記
一.shell 語言 man help等價於man h.注意點 後命令需要不全。以 開始,為絕對路徑,從根目錄開始查詢。不以 開始,為相對路徑,從當前目錄開始查詢。表示回到上一級目錄。man n item man 用來查詢linux上的手冊頁 item 需要查閱的條目 n 中n若為1 查詢需要查閱的...
PMP每日練習11月25日
2020.11.25 1 專案經理組織了一次群體活動,來討論最近乙個問題的解決方案。會議結束時,產生了多個意見,並分成不同類別進行審查和分析。這使用的是哪種群體創新技術?a.頭腦風暴 b德爾菲技術 c.概念 思維導圖 d.親和圖 答案 d 解析 親和圖 用來對大量創意進行分組的技術,以便進一步審查和...