出棧序列(棧和佇列)

2022-09-02 21:27:13 字數 808 閱讀 4502

已知自然數1,2,...,n(1≤n≤10000)依次入棧(即ainput 輸入資料報含若干組測試樣例。

每組測試樣例的第一行為整數n(1≤n≤10000);

第二行為n個正整數,以空格隔開,為出棧序列;

輸入資料的末尾以乙個0表示輸入的結束。

output

對於每組測試樣例,輸出結果為一行字串。

如給出的序列是可能的出棧序列,則輸出"yes",否則輸出"no"。

注意:區分大小寫,引號本身不輸出。

sample input

5

3 4 2 1 5

53 5 1 4 2

0

sample output

yes

no

思路:例如第一組樣例 先放1 2 3 讓3出棧 放4 讓4出 現在棧裡有1 2 再讓2出 讓1出 在放5 讓5出 滿足    第二組樣例  讓1 2 3 進棧 3出 讓4 5進棧 5出 可不能讓1出  所以no
#include #include#includeusing namespace std;

#include stackstr;

int main()

,i,j,n,t,p=0;

while(1)

else}}

if(p==0)

printf("yes\n");

else

printf("no\n");

}return 0;

}

出棧序列(棧和佇列)

description 已知自然數1,2,n 1 n 10000 依次入棧 即ainput 輸入資料報含若干組測試樣例。每組測試樣例的第一行為整數n 1 n 10000 第二行為n個正整數,以空格隔開,為出棧序列 輸入資料的末尾以乙個0表示輸入的結束。output 對於每組測試樣例,輸出結果為一行字...

棧(出棧序列)

已知自然數1,2,n 1 n 10000 依次入棧 即a1 c2,cn 是否為可能的出棧序列。例如 n 5時,3,4,2,1,5是乙個可能的出棧序列,因為其可以按如下操作獲得 push 1,push 2,push 3,pop,push 4,pop,pop,pop,push 5,pop input 輸...

LeetCode 946 驗證棧序列(棧)

給定 pushed 和 popped 兩個序列,每個序列中的值都不重複,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1 2,3 4,5 popped 4 5,3 2,1 輸出 true 解釋...