程序员面试金典 - 面试题 03.03. 堆盘子 (vector(stack))
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 03.03. 堆盘子 (vector(stack))
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
堆盤子。設想有一堆盤子,堆太高可能會倒下來。因此,在現實生活中,盤子堆到一定高度時,我們就會另外堆一堆盤子。
請實現數據結構SetOfStacks,模擬這種行為。SetOfStacks 應該由多個棧組成,并且在前一個棧填滿時新建一個棧。
此外,SetOfStacks.push()和SetOfStacks.pop()應該與普通棧的操作方法相同(也就是說,pop()返回的值,應該跟只有一個棧時的情況一樣)。
進階:實現一個popAt(int index)方法,根據指定的子棧,執行pop操作。
當某個棧為空時,應當刪除該棧。當棧中沒有元素或不存在該棧時,pop,popAt 應返回 -1.
示例1:輸入: ["StackOfPlates", "push", "push", "popAt", "pop", "pop"] [[1], [1], [2], [1], [], []]輸出: [null, null, null, 2, 1, -1]示例2:輸入: ["StackOfPlates", "push", "push", "push", "popAt", "popAt", "popAt"] [[2], [1], [2], [3], [0], [0], [0]]輸出: [null, null, null, null, 2, 1, 3]2. 解題
- 用 vector 存儲 stack
總結
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 03.03. 堆盘子 (vector(stack))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试金典 - 面试题 01.02.
- 下一篇: LeetCode 629. K个逆序对数