time limit: 30ms memory limit: 1000k 有疑問?點這裡^_^
給乙個初始的入棧序列,其次序即為元素的入棧次序,棧頂元素可以隨時出棧,每個元素只能入棧依次。輸入乙個入棧序列,後面依次輸入多個序列,請判斷這些序列是否為所給入棧序列合法的出棧序列。
例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個出棧序列,但4,3,5,1,2就不可能是該序列的出棧序列。假設壓入棧的所有數字均不相等。
第一行輸入整數n(1<=n<=10000),表示序列的長度。
第二行輸入n個整數,表示棧的壓入順序。
第三行輸入整數t(1<=t<=10)。
後面依次輸入t行,每行n個整數,表示要判斷的每乙個出棧序列。
對應每個測試案例輸出一行,如果由初始入棧序列可以得到該出棧序列,則輸出yes,否則輸出no。
5
1 2 3 4 5
2
4 5 3 2 1
4 3 5 1 2
yes
no
#include using namespace std;
const int n = 10005;
int a[n], b[n];
int main()
scanf("%d",&t);
while(t--)
int flag = 1, j;
i = 1;
j = 1;
stacks;
while(j <= n)
else if( !s.empty() && s.top() == b[j] )
else if( i <= n ) s.push(a[i++]);
else
}printf(flag?"yes":"no");
printf("\n");
}return 0;
}
sdut資料結構上機實驗之順序查詢
資料結構上機實驗之順序查詢 time limit 1000ms memory limit 65536k 在乙個的序列裡,查詢元素是否存在,若存在輸出yes,不存在輸出no.本題多組資料,首先輸入乙個數字n,然後輸入n n 1000 個數,然後再輸入乙個查詢數字。若存在輸出yes,不存在輸出no.4 ...
資料結構實驗 雜湊表 SDUT
time limit 1000ms memory limit 65536k 有疑問?點這裡 在n個數中,找出出現次數最多那個數字,並且輸出出現的次數。如果有多個結果,輸出數字最小的那乙個。單組資料,第一行數字n 1 n 100000 接下來有n個數字,每個數字不超過100000000 出現次數最多的...
sdut 資料結構實驗之棧四 括號匹配
time limit 1000ms memory limit 65536kb submit statistic discuss problem description 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。input 輸入資...