(This question has been seen in the interviews of the following companies: Facebook)
Implement a ring buffer
class RingBuffer:
def __init__(self, capacity):
self.size = capacity
self.capacity = 0
self.Buffer = [None] * capacity
self.Head = 0
self.Tail = 0
def full(self):
return self.size == self.capacity
def empty(self):
return self.capacity == 0
def add(self, obj):
self.Buffer[self.Tail] = obj
self.Tail = (self.Tail 1) % self.size
Self.capacity = 1
def pop(self):
self.Head = (self.Head 1) % self.size
Self.capacity -= 1
return self.Buffer[self.Head - 1]
Get one-to-one training from Google Facebook engineers
Top-notch Professionals
Learn from Facebook and Google senior engineers interviewed 100+ candidates.
Most recent interview questions and system design topics gathered from aonecode alumnus.
One-to-one online classes. Get feedbacks from real interviewers.
Customized Private Class
Already a coding expert? - Advance straight to hard interview topics of your interest.
New to the ground? - Develop basic coding skills with your own designated mentor.
Days before interview? - Focus on most important problems in target company question bank.