Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

#problem//1
class Stack():
def __init__(self):
self.item=[]

def push(self,item):
self.item.append(item)

def pop(self):
return self.item.pop()

def peek(self):
if not len(self.item)==0:
return self.item[-1]

def get_all(self):
return self.item

def reverse_string(val):
stack = Stack()
for char in range(len(val)):
stack.push(val[char])

update_str=" "
while not (len(stack.get_all())==0):
update_str += stack.pop()
return update_str
name=input("Enter Something: ")
x=reverse_string(name)
print(x)

Enter Something: smith


htims

#problem//2
def isBalanced(expr):
stack = []

for char in (expr):


if char in ["(", "{", "["]:
stack.append(char)
else:
if not stack:
return False
current_char=stack.pop()
if current_char == '(':
if char != ')':
return False

1 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

return False
if current_char==6s'{':completed at 11:36 PM
if char != '}':
return False
if current_char == '[':
if char != ']':
return False
if stack:
return False
else:
return True
expr = input("Write something: ")
x=isBalanced(expr)
print(x)

Write something: [][


False

#problem//3
def LargestOnTopstack(s):
helpingstack1 = Stack()
if s.isempty():
print("Stack is empty!!!")
return
max = s.peek()
while not s.isempty():
val = s.peek()

if val > max:


max = val
helpingstack1.push(val)
s.pop()

while not helpingstack1.isempty():


val = helpingstack1.peek()
helpingstack1.pop()

if max != val :
s.push(val)

s.push(max)
return s

stack1 = Stack()
stack1.push(44)

2 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

stack1.push(44)
stack1.push(91)
stack1.push(22)
stack1.push(44)
stack1.push(97)
stack1.push(56)
stack1.push(53)
stack1.push(23)
print("Current Stack: ")
stack1.printStack()
print()
print("After your Program keepLargestOnTop(stack): Stack looks like below: ")
s = LargestOnTopstack(stack1)
s.printStack()

Current Stack:
[44, 91, 22, 44, 97, 56, 53, 23]

After your Program keepLargestOnTop(stack): Stack looks like below:


[44, 91, 22, 44, 56, 53, 23, 97]

#problem//4
class Stack():
def __init__(self):
self.item=[]
def size(self):
le=len(self.item)
return le

def isempty(self):
if self.size()==0:
return True
else:
False
def push(self,item):
self.item.append(item)

def pop(self):
return self.item.pop()

def peek(self):
if not len(self.item)==0:
return self.item[-1]

def get_all(self):
return self.item

def balanceAB(s,s2):
x=int(input("How many number you want to push in A? "))

3 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

sumA=0
for i in range(x):
num1=0

num1=int(input("Enter number: "))


sumA=sumA+num1
s.push(num1)

y=int(input("How many number you want to push in B? "))


sumB=0
for i in range(y):
num2=0

num2=int(input("Enter number: "))


sumB=sumB+num2
s2.push(num2)
print(f"StackA: {s.get_all()}")
print(f"StackB: {s2.get_all()}")

if sumA<sumB:
j=sumB-sumA

s.push(j)
else:
if sumB<sumA:
z=sumA-sumB

s2.push(z)

return (s.get_all(),s2.get_all())
s=Stack()
s2=Stack()
x,y=balanceAB(s,s2)
print("Balanced Stack: ")
print(f"StackA:{x}")
print(f"StackB: {y}")

How many number you want to push in A? 2


Enter number: 4
Enter number: 3
How many number you want to push in B? 2
Enter number: 3
Enter number: 5
StackA: [4, 3]
StackB: [3, 5]
Balanced Stack:
StackA:[4, 3, 1]
StackB: [3, 5]

4 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

#problem//5
class Stack:
def __init__(self):
self.__data = []

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

def isempty(self):
if self.size()==0:
return True
else:
return False

# Push data to the top of the stack


def push(self, data):
self.__data.append(data)

def pop(self):
if self.isempty():
print("Stack is empty")
else:
self.__data.pop()

def pushStack(self, value):


temp = Stack()
while(self.peek()<value):
temp.push(self.peek())
self.pop()

self.push(value)

while(temp.isempty()!=True):
top=temp.peek()
temp.pop()
self.push(top)

def peek(self):
if self.isempty():
print("Stack is empty")
else:
return self.__data[-1]

def clearTahmid(self):
if self.isempty():
print("Stack is empty")
else:
self.__data.clear()

#Optional/Extra function. Just only for display. No use for stack functionality

5 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

#Optional/Extra function. Just only for display. No use for stack functionality
def printStack(self):
if self.isempty():
print("Stack is empty")
else:
print(self.__data)

s = Stack()

s.push(30)
s.push(20)
s.push(15)
s.push(10)
s.push(5)
s.printStack()
s.pushStack(12)
s.printStack()

[30, 20, 15, 10, 5]


[30, 20, 15, 12, 10, 5]

#problem//6
class Stack():
def __init__(self):
self.item=[]
def size(self):
le=len(self.item)
return le

def isempty(self):
if self.size()==0:
return True
else:
False
def push(self,item):
self.item.append(item)

def pop(self):
return self.item.pop()

def peek(self):
if not len(self.item)==0:
return self.item[-1]

def get_all(self):
return self.item

def charecter(y s stack x):

6 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

def charecter(y,s,stack,x):
for i in range (len(x)):
s.push(x[i])

update_str=" "
while not ((s.size())==0):
stack.push(s.pop())
while not ((stack.size())==0):
s.push(stack.peek())
update_str+= stack.pop()

print(f"You entered: {update_str}")


while y!="no":
y=(input("Want to undo word? say: yes or no "))
updated_str=" "
if y!="no":
s.pop()
while not ((s.size())==0):
stack.push(s.pop())
while not ((stack.size())==0):
s.push(stack.peek())
updated_str+= stack.pop()

print(updated_str)

return updated_str

s=Stack()
stack=Stack()
x=input("Write something: ")
y=" "
m=charecter(y,s,stack,x)
print(m)

Write something: virat


You entered: virat
Want to undo word? say: yes or no yes
vira
Want to undo word? say: yes or no no

#problem//7
from collections import deque
class Queue():
def __init__(self):
self.item=deque()
def size(self):
le=len(self.item)
return le

7 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

def isempty(self):
if self.size()==0:
return True
else:
False
def push(self,item):
self.item.append(item)

def pop(self):
return self.item.pop()

def peek(self):
if not len(self.item)==0:
return self.item[0]

def get_all(self):
return self.item
def reverse(q,q2,num):
for i in range (num):
x=int(input("Enter number: "))
q.push(x)

y=int(input("From whiche number you want to reverse: "))


z=0
while z<1:
a=0
while a< (q.size()):
if y == q.get_all()[a]:
m=a+1
while m< (q.size()):
q2.push(q.get_all()[m])
m=m+1
a=a+1

a=0
while a<(q2.size()) :
q.pop()
a=a+1
a=0
while not q.size()==0:

q2.push(q.pop())
z=z+1

return (q2.get_all())

q=Queue()
q2=Queue()
num=int(input("How many numbers you want to input: "))

8 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

num=int(input("How many numbers you want to input: "))


x=reverse(q,q2,num)
print (x)

How many numbers you want to input: 3


Enter number: 4
Enter number: 3
Enter number: 5
From whiche number you want to reverse: 3
deque([5, 3, 4])

#problem//8
class stack():
def __init__(self):
self.items=[]
def push(self,item):
self.items.append(item)
def size(self):
k=len(self.items)
return k
def isempty(self):
if self.size()==0:
return True
else:
return False
def pop(self):
return self.items.pop()

def peak(self):
if self.isempty():
print("stack is empty")
else:
return self.items[-1]
def getall(self):
return self.items
def printstack(self):
if self.isempty():
print("Stack is empty")
else:
return self.items
def number(even,odd):
for i in range (s1.size()):
if s1.getall()[i]%2==0:
even.push(s1.getall()[i])
else:
odd.push(s1.getall()[i])
print(even.getall())
print(odd.getall())

s1=stack()

9 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

s1=stack()
even=stack()
odd=stack()
import random
for i in range(9):
a=(random.randint(1,100))
s1.push(a)
print(s1.getall())
number(even,odd)

[43, 90, 4, 15, 20, 16, 97, 85, 94]


[90, 4, 20, 16, 94]
[43, 15, 97, 85]

####9
class Queue:
def __init__(self):
self.queue = []

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

def queue_is_empty(self):
if self.size() == 0:
return True
else:
return False

def enqueue(self, data):


self.queue.append(data)

def dequeue(self):
if self.queue_is_empty():
print("Queue is empty")
else:
self.queue.pop(0)

def front(self):
if self.queue_is_empty():
print("Queue is empty")
else:
return self.queue[0]

def back(self):
if self.queue_is_empty():
print("Queue is empty")
else:
return self.queue[-1]

number = int(input("Input a range of decimal to convert to binary: "))


Queue = Queue()

10 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...

for i in range(number + 1):


bin_num = str(bin(i))

for eachChar in bin_num:


Queue.enqueue(eachChar)

Queue.dequeue()
Queue.dequeue()

output = ""
while not Queue.queue_is_empty():
output = output + Queue.front()
Queue.dequeue()

print(output)

Input a range of decimal to convert to binary: 3


0
1
10
11

Colab paid products - Cancel contracts here

11 of 11 10/20/2022, 11:39 PM

You might also like