11. Trapping Rain Water (Using Stack)
Required Input:
heights = [0,1,0,2,1,0,1,3,2,1,2,1]Expected Output:
6
Code In Python
def trap_rain_water(heights):
# Write your logic here
pass
# Prefilled input
heights = [0,1,0,2,1,0,1,3,2,1,2,1]
print(trap_rain_water(heights))
Run Code?
Click Run Button to view compiled output
12. Implement Two Stacks in an Array
Required Input:
operations = ['push1 5', 'push2 10', 'push1 15', 'pop1', 'pop2']Expected Output:
Popped from Stack 1: 15
Popped from Stack 2: 10
Code In Python
class TwoStacks:
def __init__(self, size):
# Write your logic here
pass
def push1(self, x):
pass
def push2(self, x):
pass
def pop1(self):
pass
def pop2(self):
pass
# Prefilled input
stacks = TwoStacks(10)
operations = ["push1 5", "push2 10", "push1 15", "pop1", "pop2"]
for op in operations:
if "push1" in op:
stacks.push1(int(op.split()[1]))
elif "push2" in op:
stacks.push2(int(op.split()[1]))
elif "pop1" in op:
print("Popped from Stack 1:", stacks.pop1())
elif "pop2" in op:
print("Popped from Stack 2:", stacks.pop2())
Run Code?
Click Run Button to view compiled output
13. Implement a Queue Using an Array
Required Input:
operations = ['enqueue 10', 'enqueue 20', 'enqueue 30', 'dequeue', 'front', 'is_empty']Expected Output:
Dequeued element: 10
Front element: 20
Queue is empty: False
Code In Python
class QueueArray:
def __init__(self):
# Write your logic here
pass
def enqueue(self, x):
pass
def dequeue(self):
pass
def front(self):
pass
def is_empty(self):
pass
# Prefilled input
queue = QueueArray()
operations = ["enqueue 10", "enqueue 20", "enqueue 30", "dequeue", "front", "is_empty"]
for op in operations:
if "enqueue" in op:
queue.enqueue(int(op.split()[1]))
elif op == "dequeue":
print("Dequeued element:", queue.dequeue())
elif op == "front":
print("Front element:", queue.front())
elif op == "is_empty":
print("Queue is empty:", queue.is_empty())
Run Code?
Click Run Button to view compiled output
14. Implement a Queue Using a Linked List
Required Input:
operations = ['enqueue 5', 'enqueue 15', 'enqueue 25', 'dequeue', 'front', 'is_empty']Expected Output:
Dequeued element: 5
Front element: 15
Queue is empty: False
Code In Python
class QueueLinkedList:
class Node:
def __init__(self, data):
pass
def __init__(self):
pass
def enqueue(self, x):
pass
def dequeue(self):
pass
def front(self):
pass
def is_empty(self):
pass
# Prefilled input
queue = QueueLinkedList()
operations = ["enqueue 5", "enqueue 15", "enqueue 25", "dequeue", "front", "is_empty"]
for op in operations:
if "enqueue" in op:
queue.enqueue(int(op.split()[1]))
elif op == "dequeue":
print("Dequeued element:", queue.dequeue())
elif op == "front":
print("Front element:", queue.front())
elif op == "is_empty":
print("Queue is empty:", queue.is_empty())
Run Code?
Click Run Button to view compiled output
15. Implement a Circular Queue
Required Input:
operations = ['enqueue 1', 'enqueue 2', 'enqueue 3', 'dequeue', 'enqueue 4', 'front']Expected Output:
Dequeued element: 1
Front element: 2
Code In Python
class CircularQueue:
def __init__(self, size):
# Write your logic here
pass
def enqueue(self, x):
pass
def dequeue(self):
pass
def get_front(self):
pass
def is_empty(self):
pass
# Prefilled input
queue = CircularQueue(3)
operations = ["enqueue 1", "enqueue 2", "enqueue 3", "dequeue", "enqueue 4", "front"]
for op in operations:
if "enqueue" in op:
queue.enqueue(int(op.split()[1]))
elif op == "dequeue":
print("Dequeued element:", queue.dequeue())
elif op == "front":
print("Front element:", queue.front())
elif op == "is_empty":
print("Queue is empty:", queue.is_empty())
Run Code?
Click Run Button to view compiled output
16. Reverse a Queue Using Recursion
Required Input:
queue = [1, 2, 3, 4, 5]Expected Output:
[5, 4, 3, 2, 1]
Code In Python
from collections import deque
def reverse_queue(queue):
# Write your logic here
pass
# Prefilled input
queue = deque([1, 2, 3, 4, 5])
print(list(reverse_queue(queue)))
Run Code?
Click Run Button to view compiled output
17. Generate Binary Numbers Using a Queue
Required Input:
N = 5Expected Output:
['1', '10', '11', '100', '101']
Code In Python
from collections import deque
def generate_binary_numbers(N):
# Write your logic here
pass
# Prefilled input
N = 5
print(generate_binary_numbers(N))
Run Code?
Click Run Button to view compiled output
18. Check if a Given Sequence of Operations is a Valid Queue Sequence
Required Input:
enqueue_sequence = [1, 2, 3, 4, 5], dequeue_sequence = [1, 2, 3, 5, 4]Expected Output:
False
Code In Python
from collections import deque
def is_valid_queue_sequence(enqueue_sequence, dequeue_sequence):
# Write your logic here
pass
# Prefilled input
enqueue_sequence = [1, 2, 3, 4, 5]
dequeue_sequence = [1, 2, 3, 5, 4]
print(is_valid_queue_sequence(enqueue_sequence, dequeue_sequence))
Run Code?
Click Run Button to view compiled output
19. Implement a Queue Using Two Stacks
Required Input:
operations = ['enqueue 1', 'enqueue 2', 'enqueue 3', 'dequeue', 'enqueue 4', 'dequeue']Expected Output:
Dequeued element: 1
Dequeued element: 2
Code In Python
class QueueWithTwoStacks:
def __init__(self):
# Write your logic here
pass
def enqueue(self, x):
pass
def dequeue(self):
pass
# Prefilled input
queue = QueueWithTwoStacks()
operations = ["enqueue 1", "enqueue 2", "enqueue 3", "dequeue", "enqueue 4", "dequeue"]
for op in operations:
if "enqueue" in op:
queue.enqueue(int(op.split()[1]))
elif op == "dequeue":
print("Dequeued element:", queue.dequeue())
Run Code?
Click Run Button to view compiled output
20. LRU Cache Implementation Using a Queue
Required Input:
operations = ['put 1 10', 'put 2 20', 'get 1', 'put 3 30', 'get 2']Expected Output:
Accessed 1 : 10
Accessed 2 : -1
Code In Python
class LRUCache:
def __init__(self, capacity):
# Write your logic here
pass
def get(self, key):
pass
def put(self, key, value):
pass
# Prefilled input
cache = LRUCache(2)
operations = ["put 1 10", "put 2 20", "get 1", "put 3 30", "get 2"]
for op in operations:
if "put" in op:
key, value = map(int, op.split()[1:])
cache.put(key, value)
elif "get" in op:
key = int(op.split()[1])
print("Accessed", key, ":", cache.get(key))
Run Code?
Click Run Button to view compiled output


