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

将字符串序列转化为算式并计算,且符号在数字之后
复制代码
 1 class Solution {
 2 public:
 3     int evalRPN(vector<string> &tokens) {
 4         stack<int> s;
 5         for(int i=0;i<tokens.size();i++){
 6             string cur = tokens[i];
 7             int temp = atoi(cur.c_str());
 8             if(cur=="+"||cur=="-"||cur=="*"||cur=="/"){
 9                 int left,right;
10                 if(!s.empty()){
11                     right=s.top();
12                     s.pop();
13                 }
14                 if(!s.empty()){
15                     left=s.top();
16                     s.pop();
17                 }
18                 if(cur=="+")
19                     temp=left+right;
20                 else if(cur=="-")
21                     temp=left-right;
22                 else if(cur=="*")
23                     temp=left*right;
24                 else if(cur=="/")
25                     temp=left/right;
26                 
27                 
28             }
29             s.push(temp);
30         }
31         int res = s.top();
32         return res;
33     }
34 };
复制代码

 

posted @   鸭子船长  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示