0% found this document useful (0 votes)
5 views2 pages

Common Problems 4

The document contains four separate programs demonstrating basic data structures and algorithms in Python. Program 1 reverses a string using a stack, Program 2 finds two indices in a sorted list that sum to a target using a two-pointer technique, Program 3 implements a brute-force approach to find two indices that sum to a target, and Program 4 defines a Queue class with methods for enqueueing and dequeueing items. Each program includes example usage and prints relevant outputs.

Uploaded by

Erdey Syoum
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views2 pages

Common Problems 4

The document contains four separate programs demonstrating basic data structures and algorithms in Python. Program 1 reverses a string using a stack, Program 2 finds two indices in a sorted list that sum to a target using a two-pointer technique, Program 3 implements a brute-force approach to find two indices that sum to a target, and Program 4 defines a Queue class with methods for enqueueing and dequeueing items. Each program includes example usage and prints relevant outputs.

Uploaded by

Erdey Syoum
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

# program 1

stg = input('enter a string ')


stack = []
print('input', stg)
for i in stg:
stack.append(i)

reverse = ''
while stack:
reverse = reverse + stack.pop()
print('reverse', reverse)

# program 2
def two_sum(nums, target):
num_ordered = sorted(nums)
low = 0
high = len(num_ordered) - 1

while low < high:


if num_ordered[low] + num_ordered[high] == target:
return [low, high]
elif num_ordered[low] + num_ordered[high] > target:
high -= 1
else:
low += 1
return []

nums = [7, 1, 5, 3, 6, 4]
target = 9
print(two_sum(nums, target))

# program 3
def two_sum(nums, target):
found = []
for i in range(len(nums)):
for j in range(1, len(nums)):
if nums[i] + nums[j] == target:
found.append(i)
found.append(j)
return found

nums = [2, 7, 11, 15]


target = 37
print(two_sum(nums, target))

# program 4
class Queue:
def __init__(self):
self.items = []

def is_empty(self):
return self.items == []

def is_full(self):
return self.items == len(self._items)

def enqueue(self, item) -> None:


self.items.insert(0, item)

def dequeue(self):
assert not self.is_empty(), 'cannot dequeue from an empty queue'
return self.items.pop()

def size(self):
return len(self.items)

queue1 = Queue()
print('is empty', queue1.is_empty())
print('size', queue1.size())
print('dequeue', queue1.dequeue())
queue1.enqueue(12)
queue1.enqueue(87)
queue1.enqueue('Hello')
print('size after enqueue', queue1.size())
print('dequeue', queue1.dequeue())

You might also like