Evaluate Reverse Polish Notation --leetcode
来源:互联网 发布:小脑袋调价软件 编辑:程序博客网 时间:2024/05/16 07:34
原题链接:https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/
题目大意:给出逆波兰式,然后求其结果。
解题方法:单个栈
思路:遍历逆波兰式,若为数字,则入栈;若为操作符,则弹出栈顶的2个元素,然后将其对应该操作符的结果入栈。遍历完成后,栈中元素就是所求结果。
时间复杂度:O(N) 空间复杂度 : O(1)
class Solution {public: int evalRPN(vector<string> &tokens) { if(tokens.empty()) return 0; stack<int> s; int op1=0,op2=0; for(int i=0;i<tokens.size();i++) { if(tokens[i]=="+") { op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1+op2); } else if(tokens[i]=="-") { op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1-op2); } else if(tokens[i]=="*") { op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1*op2); } else if(tokens[i]=="/") { op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1/op2); } else s.push(atoi(tokens[i].c_str())); } return s.top(); }};
5 0
- Evaluate Reverse Polish Notation | leetcode
- leetcode-Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- LeetCode - Evaluate Reverse Polish Notation
- LeetCode | Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation (LeetCode)
- leetcode: Evaluate Reverse Polish Notation
- Leetcode Evaluate Reverse Polish Notation
- [LeetCode] Evaluate Reverse Polish Notation
- [LeetCode] Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation -- LeetCode
- 【LeetCode】Evaluate Reverse Polish Notation
- LeetCode-Evaluate Reverse Polish Notation
- LeetCode:Evaluate Reverse Polish Notation
- LeetCode Evaluate Reverse Polish Notation
- Leetcode:Evaluate Reverse Polish Notation
- 如何在Linux里使用xargs命令
- UVA - 10048 Audiophobia (floyd+dp)
- 二叉树遍历(递归,非递归)
- 清仓极路由,源代码
- socket通信
- Evaluate Reverse Polish Notation --leetcode
- jsp监听器实现在线人数统计
- tcpDump包的解封读取(附源代码)
- C#3.0新特性之扩展方法介绍
- 关于vs2013中的BrowserLink问题
- poj 2570 Fiber Network floyd算法
- 皇帝不是吃喝玩乐
- Javascript 基础知识 - 操作符 - typeof & instanceof
- Nat,桥接,DHCP,路由器,VMWARE的一些理解