面試題31:棧的壓入,彈出序列

題目:輸入兩個(gè)整數(shù)序列,第一個(gè)序列表示棧的壓入操作,第二個(gè)序列表示棧的彈出順序,假設(shè)所有數(shù)字不相等,請(qǐng)判斷是否合法。

  • 解析:如果彈出的數(shù)字和棧頂元素相等,則彈棧,如果彈出的數(shù)字和棧頂不相等,則壓棧,如果最終所有的元素都被壓棧。最終棧不為空,則不合法。
import java.util.Stack;

public class isPopSolution {
    public boolean IsPopOrder(int[] push,int[] pop){
        if(push.length==0||pop.length==0||push.length!=pop.length) return false;
        int length = pop.length;
        int popIndex = 0;
        int pushIndex = 0;
        Stack<Integer> stack = new Stack<>();
        while(length>pushIndex){
            while(stack.isEmpty()||stack.top!=pop[popIndex]){
                if(pushIndex==length)
                    break;
                stack.push(pushIndex);
                pushIndex++;
            }
            if(stack.top!=pop[popIndex]) break;;
            stack.pop();
            popIndex++;
        }

        if(length==popIndex&&stack.isEmpty()) return true;
        return false;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天和姐姐一起去市里玩,經(jīng)過(guò)寶龍廣場(chǎng)的紅綠燈,因著這一地段比較繁華,所以紅綠燈往往需要等好幾個(gè)才能過(guò)去,我們便停下...
    貓妖之毓?jié)?/span>閱讀 159評(píng)論 0 1
  • 最好的季節(jié) 盛開(kāi)最絢麗的花 不需要約定 也不必為誰(shuí) 盛開(kāi)和凋落 一念之間
    梅落驚風(fēng)雨閱讀 273評(píng)論 0 1
  • 時(shí)光,就這樣靜靜的,流淌。 四季輪回,轉(zhuǎn)眼又是春暖花開(kāi)。 你說(shuō);喜歡春,因?yàn)槲覀兿嘤鲈诖禾臁?我便一直在春的門(mén)楣上...
    遠(yuǎn)離世味的驛站閱讀 312評(píng)論 0 0

友情鏈接更多精彩內(nèi)容