码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode: Reverse Words in a String:Evaluate Reverse Polish Notation

时间:2014-07-27 23:32:59      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   strong   io   for   代码   

LeetCode: Reverse Words in a String:Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +, -, *, /. Each operand may be an integer or another expression.

Some examples:

  ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

地址:https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/
计算波兰后缀表达式的值,具体做法是利用一个栈,如果遇到数字则把数字进栈,如果遇到操作符就把栈中的数字出栈进行运算(二元操作符出栈两个数字,一元操作符出栈一个数字),最后的结果存在栈中。代码:
 1 class Solution {
 2 public:
 3     int evalRPN(vector<string> &tokens) {
 4         int lop, rop;
 5         vector<string>::const_iterator cIter = tokens.begin();
 6         stack<int> s;
 7         for(; cIter != tokens.end(); ++cIter){
 8             if ((*cIter).size() == 1 && !isdigit((*cIter)[0])){
 9                 char op = (*cIter)[0];
10                 rop = s.top();
11                 s.pop();
12                 lop = s.top();
13                 s.pop();
14                 if (+ == op){
15                     s.push(lop + rop);
16                 } else if (- == op){
17                     s.push(lop - rop);
18                 } else if (* == op){
19                     s.push(lop * rop);
20                 } else{
21                     s.push(lop / rop);
22                 }
23             } else {
24                 s.push(atoi((*cIter).c_str()));
25             }
26         }
27         return s.top();
28     }
29 };

 

LeetCode: Reverse Words in a String:Evaluate Reverse Polish Notation,布布扣,bubuko.com

LeetCode: Reverse Words in a String:Evaluate Reverse Polish Notation

标签:style   blog   http   color   strong   io   for   代码   

原文地址:http://www.cnblogs.com/boostable/p/leetcode_evaluate_reverse_polish_notation.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!