Search⌘ K
AI Features

Solution: Implement Two Stacks Using One List

Explore how to design and implement two stacks within a single list data structure in Python. Understand push and pop operations for both stacks using two pointers without resizing the list, ensuring efficient in-place operations with O(1) time complexity. This lesson helps you grasp practical stack management techniques essential for coding interviews.

Statement

Design a data structure TwoStacks, that represents two stacks using a single list, where both stacks share the same list for storing elements.

The following operations must be supported:

  • push1(value): Takes an integer value and inserts it into the first stack.

  • push2(value): Takes an integer value and inserts it into the second stack.

  • pop1(): Removes the top element from the first stack and returns it.

  • pop2(): Removes the top element from the second stack and returns it.

Note: Perform all operations in-place without resizing the underlying list, maintaining a fixed size throughout.

Constraints:

  • 11 \leq list.length 103\leq 10^3 ...