Browse Source

上传文件至 ''

hzhu 7 years ago
parent
commit
3f8e73868e
1 changed files with 46 additions and 0 deletions
  1. 46 0
      bee

+ 46 - 0
bee

@@ -0,0 +1,46 @@
1
+class Stack:  
2
+    def __init__(self):  
3
+        self.items = []  
4
+          
5
+    def isEmpty(self):  
6
+        return len(self.items)==0   
7
+      
8
+    def push(self, item):  
9
+        self.items.append(item)  
10
+      
11
+    def pop(self):  
12
+        return self.items.pop()   
13
+      
14
+    def peek(self):  
15
+        if not self.isEmpty():  
16
+            return self.items[len(self.items)-1]  
17
+          
18
+    def size(self):  
19
+        return len(self.items)
20
+ 
21
+   
22
+def postfixEval(postfixExpr):  
23
+    operandStack = Stack()  
24
+    tokenList =postfixExpr.split()  
25
+   
26
+    for token in tokenList:  
27
+        if token in"0123456789":  
28
+           operandStack.push(int(token))  
29
+        else:  
30
+            operand2 =operandStack.pop()  
31
+            operand1 =operandStack.pop()  
32
+            result =doMath(token,operand1,operand2)  
33
+            operandStack.push(result)  
34
+    return operandStack.pop()  
35
+   
36
+def doMath(op, op1, op2):  
37
+    if op == "*":  
38
+        return op1 * op2  
39
+    elif op == "/":  
40
+        return op1 / op2  
41
+    elif op == "+":  
42
+        return op1 + op2  
43
+    else:  
44
+        return op1 - op2  
45
+   
46
+print(postfixEval('7 8 + 3 2 + /'))