輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這兩個序列的長度是相等的)
先看題目,理解一下題目含義(一開始沒看懂在講什麼,菜是原罪)。發現正確的彈出順序與壓入順序有關聯,例如彈出順序的第二彈出的5在4的右邊,之後的3在5的左邊,而像4,3,5,1,2中的第三個5之後應該為2,不可能跳過2直接為1,也就是說下乙個彈出的序列總會在前面數字的左邊或者右邊。這個讓人聯想到棧這種資料結構,所以我們只要模擬一下棧的壓入與彈出即可。
public
boolean
ispoporder
(int
pusha,
int[
] popa)
}return stack.
isempty()
;}
劍指offer 21 棧的壓入 彈出
1.題目描述輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長...
《劍指offer》21 棧的壓入 彈出序列
輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度是相等的 思路...
劍指offer 21棧的壓入 彈出序列
題目描述 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度...