All problems
MPSC Queue Enqueue Count
Problem
Simulate a bounded MPSC queue with several producers and one consumer.
capacity is the queue size. operations contains "enqueue" (producers[i] is the producer id) or "dequeue". Enqueues to a full queue are dropped and dequeues from an empty queue do nothing.
Return a dictionary with "enqueued" (sorted [producer, success_count] pairs), "dropped", and "dequeued" totals.
Hint
Only producers with at least one successful enqueue appear in the summary.
Test cases
case 1
in: [2,["enqueue","enqueue","enqueue","dequeue","enqueue"],[1,2,3,0,1]]
expected: {"enqueued":[[1,2],[2,1]],"dropped":1,"dequeued":1}
case 2
in: [1,["enqueue","enqueue","enqueue"],[7,7,7]]
expected: {"enqueued":[[7,1]],"dropped":2,"dequeued":0}
case 3
in: [1,["dequeue"],[0]]
expected: {"enqueued":[],"dropped":0,"dequeued":0}
case 4
in: [3,["enqueue","dequeue","enqueue","dequeue"],[1,0,2,0]]
expected: {"enqueued":[[1,1],[2,1]],"dropped":0,"dequeued":2}
Starter codePython
def mpsc_queue(capacity, operations, producers):
# Your code here
pass4 test cases · run your code against them in the editor