1. 程式人生 > >筆試選擇題——出棧&入棧問題

筆試選擇題——出棧&入棧問題

  昨天筆試,遇到一道有關出棧入棧順序問題的選擇題,當時暈暈乎乎好像做錯了,時間太長沒遇到這題已經忘記是啥意思了。

  苦逼。

  現在回頭來複習一下。

  下面是一道例項:

一個棧的入棧序列為ABCDE,則不可能的出棧序列為?(不定項選擇題)

  A:  ECDBA

  B:  DCEAB

  C:  DECBA

  D:  ABCDE

  E:  EDCBA
正確答案是:AB

解析如下:

  首先,入棧與出棧是交錯進行的,也就是A入棧後可能立馬就出棧了。  

  選項A:A入,B入,C入,D入,E入。想要出棧順序為ECD,那麼E要先出,也就是E必須是最後一個入棧,第一個出棧的,那麼CD先後出棧的情況是不存在的。即選項A為false

  選項B:A入,B入,C入,D入,D出,C出,E入,E出,B出,A出,也就是說,按照DCE的順序,最後出棧的應該是BA才對。即選項B為false;

  選項C:A入,B入,C入,D入,D出,E入,E出,C出,B出,A出,即選項C為true;

  選項D:A入,A出,B入,B出,C入,C出,D入,D出,E入,E出,即選項D為true;

  選項E:A入,B入,C入,D入,E入,E出,D出,C出,B出,A出,即選項E為true;

  故,選項A與B是不可能出現的。

相關推薦

筆試選擇題——&問題

  昨天筆試,遇到一道有關出棧入棧順序問題的選擇題,當時暈暈乎乎好像做錯了,時間太長沒遇到這題已經忘記是啥意思了。   苦逼。   現在回頭來複習一下。   下面是一道例項: 一個棧的入棧序列為ABCDE,則不可能的出棧序列為?(不定項選擇題) A: ECDBA

BZOJ_3786_星系探索_splay維護

類型 else out val long 每一個 har 維護 收集 BZOJ_3786_星系探索_splay維護出棧入棧序 Description 物理學家小C的研究正遇到某個瓶頸。 他正在研究的是一個星系,這個星系中有n個星球,其中有一個主星球(方便起見我們默

java-模擬

package com.sc; class stack{ int array[]=new int[20]; //定義棧的儲存結構,陣列後期會進行擴容 int size=0;//棧中存放資料的個數 /** * * push()函式用來進行入

合法性檢驗,C/C++語言程式

“棧.h” #include<stdio.h> #include<stdlib.h> #define A 40 typedef int Datatype; typedef struct Stack{     Datatype stack_array

資料結構--c實現

 一,只有棧頂的情況。 1,首先定義連結串列單節點: typedef struct node {     ElementType data;     struct node *next }StackNode ,*LinkStack; 2.

問題

基本概念:多用於計算機,與其相對應的是進棧;進棧、出棧多是按照一定順序的例如:有一個數列(23,45,3,7,3,945)我們先對其進行進棧操作,則進棧順序為:23,45,3,7,3,945(放盒子)我們在對其進行出棧操作,則出棧順序為:945,3,7,3,45,23(盒子中

一個序列和一個序列,判斷序列是否是序列對應的序列

注意:在入棧的過程中,並不是所有元素都入棧了之後才出棧,也可能是入棧幾個元素,出棧一個或多個,然後再繼續入棧,入棧序列只能保證所有元素按規定順序入棧。 思路:利用一個輔助棧和一個指向出棧序列第一個元素的下標(int count = 0;),利用一個迴圈在遍歷入棧序列入棧的同

的基本操作

article 安全 empty scan -s type fine mod pos #include<stdio.h> #include<stdlib.h> #define LENGTH 100 //初始分配棧的長度 #define ADD

一個序列為ABCDEF,則不可能的序列是

size 核心 span 順序 例如 錯誤 必須 分析 2.6 技術之瞳 阿裏巴巴技術筆試心得習題2.65:   一個棧的入棧序列為ABCDEF,則不可能的出棧序列是(D)   A、DEFCBA    B、DCEFBA    C、FEDCBA   D、FECDBA    E

實現一個,要求實現Push()、Pop()、Min(返回最小值)的時間複雜度為O(1)

這道題考查棧的知識點,要求實現一個棧,在對這個棧進行入棧和出棧以及返回最小棧元素時要求時間複雜度為O(1)。 方法一: 用兩個棧,一個正常出入棧,另一個存最小棧,入棧的時候第一個站正常入,最小棧如果為空或者要入的data比最小棧的棧頂元素小的時候才給最小棧入棧。

給定順序,輸出所有可能情況及所有情況的總數

一個長度為n的無重複序列入棧的所有出棧方式 例如1、2、3這三個數字,入棧並出棧共有5種方式,分別為:321、312、231、213、123。那麼對於長度為n的無重複序列中所有的出棧方式有哪些呢? 為了設計計算的演算法,我們可以用佇列(queue)來模擬輸入,佇列的輸出則按照原先序列的順序。

N個數依次順序有多少種

轉載:https://blog.csdn.net/u010255818/article/details/62044402 題目 N個數依次入棧,出棧順序有多少種? 直接公式 令h(0)=1,h(1)=1,卡特蘭數滿足遞推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ..

IOS初學-檢視控制器的跳轉方式

新建專案。建立ThreeSubViewController檢視控制器 在ThreeSubViewController中定義一個全域性變數記錄編號 //記錄 檢視控制器編號的全域性變數 var pageNum=0; 控制器中每建立一次。增加一次編號。定義四個button新增到根檢視總

[Xcode10 實際操作]三、檢視控制器-(5)使用UINavigationController檢視

本文將演示使用導航控制器的幾個跳轉方式 選擇編輯第二個檢視控制器檔案 1 import UIKit 2 //定義一個全域性變數,用來記錄當前顯示區域的檢視的編號 3 var pageNum = 0 4 5 class SecondSubViewController: U

順序:創建&初始化、、計算中有效數據長度、獲取頂數據、清空、銷毀

機制 按位取反 軟件 技巧 stdlib.h sig length stack capacity /* 順序棧的實現: 初始化 入棧 出棧 計算棧的有效數據長度 獲取棧頂數據 清空棧 銷毀棧*/#include <std

關於N個數1--N數順序,有多少種方式的問題

這是一個排列組合的問題,赫赫有名的卡特蘭數 舉例說明,共有一個1,2,3,4四個數,入棧方式有 1入,2入,3入,4入,4出,3出,2出,1出 故出棧順序4,3,2,1 1入,1出,2入,3入,4入,4出,3出,2出 故出棧順序1,4,3,2 1入,1出,2入,2出,3入,4入,4出,3出 故出

php的定義和的實現

棧是線性表的一種,他的特點是後入先出,可以這麼理解,棧就像一個存東西的盒子,先放進去的在最底層,後放進去的在上層,因為上層的東西把底層的東西壓住了,下層的想要出去就必須把上層的先拿開才行。 定義:棧是限制插入和刪除都只能發生在一個位置上進行的線性表,該位置是線性表的末端,叫做棧的頂。 口訣:“後進先出”,

【資料結構】實現一個要求實現Push()Pop()Min(返回最小值)的時間 複雜度為O(1)

文章目錄 思路 MinStack.h MinStack.c Test.c 棧的基本實現: https://blog.csdn.net/weixin_41892460/article/details/8297385

根據順序輸出所有可能的順序 (Java)

比如入棧順序是1,2,3,那麼出棧順序分別可以是1,2,3;1,3,2;…. import java.util.Stack; public class ss { static char[] in={'a','b','c'}; public static void main(Str

給定順序,求所有可能的順序

先給出算所有出棧可能的個數的公式,由卡特蘭數可以得到 n = (2n!)/(n! * (n+1)!) 那麼怎麼樣得到所有的具體出棧順序呢,有兩種思路可以解決這個問題。 1.先得到入棧字串的全排列,然後根據出棧順序的規律進行篩選。 那麼篩選的條件是什麼? 舉例說明 入棧