Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Debounce or Throttle Input Events

MediumPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Debounce or Throttle Input Events. Start with the requirements on the right.

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.

Problem

Macromill's Questant interface should avoid processing every keystroke in an input field. Implement a function that simulates either debouncing or leading-edge throttling for an ordered stream of input events.

Each event contains a timestamp and a value. Return the values that would be processed by the application.

Formal Specification

Implement process_events(events, wait, mode):

  • events is a list of [timestamp, value] pairs sorted by nondecreasing integer timestamp.
  • wait is a positive integer number of time units.
  • mode is either `

Constraints

  • 0 <= events.length <= 10^5
  • 0 <= events[i][0] <= 10^9
  • events are sorted by nondecreasing timestamp
  • Each event value is a string or integer
  • 1 <= wait <= 10^9
  • mode is either "debounce" or "throttle"
  • Throttle behavior is leading-edge only, with no trailing event

Function Signature

def process_events(events, wait, mode):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output