Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Max in a Stack
00:00
5 left

Max in a Stack

EasyPython

Problem

While processing an Autodesk Fusion command history, design a stack that supports push, pop, and get_max. Every get_max operation must return the largest value currently stored without scanning the stack.

Implement max_stack(operations). Each operation is represented as a list: ['push', value], ['pop'], or ['get_max']. A push changes the stack but produces no output. For every pop, return and remove the top value. For every get_max, return the current maximum without modifying the stack. Return all produced values in operation order.

The input will never attempt pop or get_max on an empty stack. Duplicate values and negative integers are allowed. Do not use Python's max during operation processing.

Formal Specification

  • Input: operations, a list of operation lists containing strings and, for push, one integer value.
  • Output: A list of integers produced by pop and get_max operations.

Constraints

  • 1 <= len(operations) <= 10^5
  • -10^9 <= value <= 10^9
  • Every pop and get_max operation is valid
  • Each operation is push, pop, or get_max

Function Signature

def max_stack(operations):
Interviewer

Your question is Max in a Stack. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
Sign up free to run your codeLog inLn 2
Run your code to see test output here.