Advertisement
Guest User

Untitled

a guest
Apr 11th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.73 KB | None | 0 0
  1. class Stack:
  2.     def __init__(self):
  3.         self.list = []
  4.     def push(self,n):
  5.         self.list = [n] + self.list
  6.     def pop(self):
  7.         return self.list.pop(0)
  8.  
  9. def isOp(string):
  10.     list = ["+","-","/","*","^"]
  11.     for x in list:
  12.         if x==string: return True
  13.     return False
  14.  
  15. def RPN(num):
  16.     nums = Stack()
  17.     ops = Stack()
  18.     answer = ""
  19.     for a in num:
  20.         if isOp(a):
  21.             ops.push(a)
  22.         elif a == ')':
  23.             answer = nums.pop()
  24.             answer = nums.pop() + answer + ops.pop()
  25.             nums.push(answer)
  26.         elif a !='(':
  27.             nums.push(a)
  28.     return nums.pop()
  29.  
  30. def main():
  31.     x = input()
  32.     print(RPN(x))
  33.  
  34. if __name__=='__main__':
  35.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement