判斷乙個序列是否可由給定序列通過棧操作獲得

2021-10-25 07:49:36 字數 942 閱讀 5782

public

class

legalsequence

/** * 判斷乙個序列是否可由給定序列通過棧操作獲得

* @param s

* @return

*/public

static

boolean

legalsequence

(string s)}}

return

true;}

/** * 輸出abcde全排列中所有符合上面方法的序列

* @param s

*/public

static

void

arr(string s)

/** * 對數值a中p下標到q下標進行全排列

* @param a

* @param p

* @param q

*/private

static

void

arr(

char

a,int p,

int q)if(

legalsequence

(str)

) system.out.

println

(str)

;return;}

//後面的元素都要和第乙個元素進行交換,求剩餘的元素的全排練,把交換的元素再換回來

for(

int i = p; i <= q; i++)}

/** * 交換

* @param a

* @param i

* @param j

*/public

static

void

swap

(char

a,int i,

int j)

}

判斷乙個序列是否為合法序列

1.1 問題描述 假設以1 和0 分別表示入棧和出棧操作。棧的初態和終態均為空,入棧和出棧的操作序列可表示為僅由1 和0 組成的序列,稱可以操作的序列為合法序列,否則稱為非法序列。寫出乙個演算法,判定所給的操作序列是否合法。若合法,返回1,否則返回0。輸入序列的長度不超過30個操作 1.2 輸入形式...

給定入棧序列判斷給定出棧序列是否合法

題目 輸入兩個整數序列。其中乙個序列表示棧的入棧順序,判斷另乙個序列有沒有可能是對應的出棧順序。思路 用乙個輔助棧,將入棧序列按照某種順序入棧,看是否可以產生出棧序列即可。1 如果當前棧為空,且入棧序列不空,則入棧序列的下乙個元素入棧 2 如果當前輔助棧的棧頂元素不等於出棧序列的首元素,那麼入棧序列...

判斷乙個序列是否是另外乙個序列的子串行的演算法

思路一 從子串行中挨個找,找到乙個之後,擷取子串行和母序列之前的,然後繼續遞迴自身 1.先分析下找不到的情況,如果母序列從頭找到尾,也沒有找到,則視為不是其子序列 2.繼續分析找到的情況,如果找到之後,並且子串行的長度為1,則代表都找完了。3.如果這時子串行仍然還沒有找完,則擷取後繼續呼叫自身。pu...