an HCL GUVI product

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 = 5

Expected 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

2 of 3