[Stack Implementation in Python]
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
[Reverse String using Stack]
from stack import *
def revString(String):
index=0
s=Stack()
while index < len(String):
symbol=String[index]
print symbol
s.push(symbol)
index=index + 1
revstring=""
while not s.isEmpty():
revstring=revstring + str(s.pop())
return revstring
print (revString('parag'))
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
[Reverse String using Stack]
from stack import *
def revString(String):
index=0
s=Stack()
while index < len(String):
symbol=String[index]
print symbol
s.push(symbol)
index=index + 1
revstring=""
while not s.isEmpty():
revstring=revstring + str(s.pop())
return revstring
print (revString('parag'))
[Parenthesis matching using Stack]
from stack import *
def parChecker(symbolString):
s=Stack()
balanced = True
index=0
while index < len (symbolString) and balanced:
symbol = symbolString[index]
print symbol
if symbol in "([{" :
s.push(symbol)
else:
if s.isEmpty():
balanced=False
else:
top=s.pop()
if not matches(top,symbol):
balanced=False
index=index + 1
if balanced and s.isEmpty():
return True
else:
return False
def matches(open,close):
opens="([ {"
close =")]}"
return opens.index(open)==close.index(close)
print(parChecker('[{([][])}()}'))
[ Decimal to Binary Conversion ]
from stack import *
def divby2(number):
s=Stack()
while number > 0:
remainder=number % 2
s.push(remainder)
number = number // 2
binString=""
while not s.isEmpty():
binString=binString + str(s.pop())
return binString
print (divby2(10))