合法入棧順序

2021-09-24 14:17:08 字數 764 閱讀 2393

題目描述

我們知道,乙個入棧序列是的合法出棧序列有,等,而是不合法的.現在冰語有乙個長度為n的序列a(保證序列內數字唯一,且1<=a[i]<=n)。他想知道這個序列是不是入棧順序的合法出棧序列,你能告訴他麼?

輸入

第一行為t,表示樣例個數

每個樣例第一行為n,第二行為n個數

1<=t<=1e4,3<=n<=100

輸出對於每個樣例輸出一行,合法輸出"yes",反之輸出"no",

樣例輸入 copy13

3 1 2

樣例輸出 copy

no

題解:判斷乙個是否存在三元組(i,j,k)滿足ia[k]>a[j]即可。

#include

using namespace std;

const

int maxn =

111;

vector <

long

long

> g;

int t ,n;

int a[maxn]

;int

main()

if(a[j]

< a[i]

)else

if(c1)}}

if(flag)

else

}return0;

}

根據入棧順序判斷出棧順序是否合法

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

元素出棧 入棧順序的合法性

元素出棧 入棧順序的合法性。如入棧的序列 1,2,3,4,5 出棧序列為 4,5,3,2,1 很直觀的一種想法,建立乙個輔助棧,把輸入的第乙個序列中的數字一次壓入該輔助棧,並按照第二個序列的順序從該棧中彈出數字。遍歷出棧順序中的元素,有兩種情況 1 如果元素是棧頂的元素,則pop出來 2 如果不是棧...

元素出棧 入棧順序的合法性。

1.基礎題 元素出棧 入棧順序的合法性。如 入棧的序列 1,2,3,4,5 出棧序列為 4,5,3,2,1 則合法。入棧的序列 1,2,3,4,5 出棧序列為 4,5,2,3,1 則不合法。include include include using namespace std input為入棧序列,...