leetcode--002 rpn

 1 package leetcode;
 2 
 3 import java.util.Stack;
 4 
 5 public class RPN {
 6      public static int evalRPN(String[] tokens) {
 7          Stack stack=new Stack(); 
 8             for(int i=0;i<tokens.length;i++){
 9                 if(tokens[i]=="+"){
10                     int a=Integer.parseInt((String)stack.pop());
11                     int b=Integer.parseInt((String)stack.pop());
12                     stack.push(a+b);                
13                 }else if(tokens[i]=="-"){
14                     int a=Integer.parseInt((String)stack.pop());
15                     int b=Integer.parseInt((String)stack.pop());
16                     stack.push(a-b);                
17                 }else if(tokens[i]=="*"){
18                     int a=Integer.parseInt((String)stack.pop());
19                     int b=Integer.parseInt((String)stack.pop());
20                     stack.push(a*b);                
21                 }else if(tokens[i]=="/"){
22                     int a=Integer.parseInt((String)stack.pop());
23                     int b=Integer.parseInt((String)stack.pop());
24                     if(b==0){
25                         return 0;
26                         
27                     }else{
28                         stack.push(a/b);    
29                     }
30                                 
31                 }else{
32                     stack.push(tokens[i]);
33                 }
34                 
35             }
36             int result=(int)stack.peek();
37             return result;
38         }
39      public static void main(String[] args){
40          String[] tokens={"0","3","/"};
41          
42          System.out.println(evalRPN(tokens));
43      }
44 }
原文地址:https://www.cnblogs.com/thehappyyouth/p/3875268.html