面試題03 01 三合一

2021-10-07 05:34:05 字數 697 閱讀 2332

三合一。描述如何只用乙個陣列來實現三個棧。

你應該實現push(stacknum, value)、pop(stacknum)、isempty(stacknum)、peek(stacknum)方法。stacknum表示棧下標,value表示壓入的值。

建構函式會傳入乙個stacksize引數,代表每個棧的大小。

示例1:

輸入:["tripleinone", "push", "push", "pop", "pop", "pop", "isempty"]

[[1], [0, 1], [0, 2], [0], [0], [0], [0]]

輸出:[null, null, null, 1, -1, -1, true]

說明:當棧為空時`pop, peek`返回-1,當棧滿時`push`不壓入元素。

分析: 本題要求在乙個陣列上實現三個站棧,所以我們在**實現時可以這樣考慮,乙個棧的時候對應的操作是什麼? 然後主要的不同是我們要對應棧的起始點,根據對應的公式進行換算:

class tripleinone 

void push(int stacknum, int value)

int pop(int stacknum)

int peek(int stacknum)

bool isempty(int stacknum)

};

面試題 03 01 三合一

三合一。描述如何只用乙個陣列來實現三個棧。你應該實現push stacknum,value pop stacknum isempty stacknum peek stacknum 方法。stacknum表示棧下標,value表示壓入的值。建構函式會傳入乙個stacksize引數,代表每個棧的大小。示...

程式設計師面試金典 面試題 03 01 三合一

三合一。描述如何只用乙個陣列來實現三個棧。你應該實現push stacknum,value pop stacknum isempty stacknum peek stacknum 方法。stacknum表示棧下標,value表示壓入的值。建構函式會傳入乙個stacksize引數,代表每個棧的大小。示...

程式設計師面試金典 03 01 三合一

三合一。描述如何只用乙個陣列來實現三個棧。你應該實現push stacknum,value pop stacknum isempty stacknum peek stacknum 方法。stacknum表示棧下標,value表示壓入的值。建構函式會傳入乙個stacksize引數,代表每個棧的大小。示...