File tree Expand file tree Collapse file tree 1 file changed +21
-25
lines changed Expand file tree Collapse file tree 1 file changed +21
-25
lines changed Original file line number Diff line number Diff line change 1+ /** @const  {!Object} */ 
2+ const  OPERATORS  =  { 
3+     '+' : ( a ,  b )  =>  a  +  b , 
4+     '-' : ( a ,  b )  =>  a  -  b , 
5+     '*' : ( a ,  b )  =>  a  *  b , 
6+     '/' : ( a ,  b )  =>  Math . trunc ( a  /  b ) 
7+ } ; 
8+ 
19/** 
210 * @param  {string[] } tokens 
311 * @return  {number } 
412 */ 
5-  var  evalRPN  =  function ( tokens )  { 
6-   let  stack  =  [ ] ; 
7- 	for  ( const  token  of  tokens )  { 
8- 		if  ( / ^ [ + \- * \/ ] $ / . test ( token ) )  { 
9-       const  rhs  =  stack . pop ( ) ; 
10-       const  lhs  =  stack . pop ( ) ; 
11-       switch  ( token )  { 
12-         case  '+' :
13-           stack . push ( lhs + rhs ) ; 
14-           break ; 
15-         case  '-' :
16-           stack . push ( lhs - rhs ) ; 
17-           break ; 
18-         case  '*' :
19-           stack . push ( lhs * rhs ) ; 
20-           break ; 
21-         case  '/' :
22-           stack . push ( Math . trunc ( lhs / rhs ) ) ; 
23-       } ; 
24-     }  else  { 
25-       stack . push ( Number ( token ) ) ; 
26-     } ; 
27- 	} ; 
28- 	return  stack . pop ( ) ; 
29- } ; 
13+ function  evalRPN ( tokens )  { 
14+     const  stack  =  [ ] ; 
15+     for  ( const  token  of  tokens )  { 
16+         if  ( token  in  OPERATORS )  { 
17+             const  rhs  =  stack . pop ( ) ; 
18+             const  lhs  =  stack . pop ( ) ; 
19+             stack . push ( OPERATORS [ token ] ( lhs ,  rhs ) ) ; 
20+         }  else  { 
21+             stack . push ( Number ( token ) ) ; 
22+         } 
23+     } 
24+     return  stack . pop ( ) ; 
25+ } 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments