已知自然數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 解釋...