LeetCode OJ--Evaluate Reverse Polish Notation
2014-02-14 21:24
375 查看
http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/
栈使用
栈使用
#include <iostream> #include <string> #include <vector> #include<stack> using namespace std; class Solution { public: int toNum(string str) { int sum = 0; int i = 0; int flagPositiveOrNegative = 1;; if(str[0] == '-') { flagPositiveOrNegative = -1; i = 1; } for( i;i<str.size();i++) { sum *= 10; sum += str[i] - '0'; } return sum * flagPositiveOrNegative; } int evalRPN(vector<string> &tokens) { if(tokens.size()==0) return 0; int i = 0; stack<int> myStack; while(i<tokens.size()) { if(tokens[i] == "+" || tokens[i] == "-" || tokens[i]=="*" ||tokens[i] == "/" ) { int num1 = myStack.top(); myStack.pop(); int num2 = myStack.top(); myStack.pop(); if(tokens[i] == "+") myStack.push(num1+num2); if(tokens[i] == "-") myStack.push(num2-num1); if(tokens[i] == "*") myStack.push(num1*num2); if(tokens[i] == "/") myStack.push(num2/num1); } else { myStack.push(toNum(tokens[i])); } i++; } return myStack.top(); } }; int main() { Solution myS; vector<string> input; input.push_back("3"); input.push_back("-4"); input.push_back("+"); cout<<myS.evalRPN(input); return 0; }
相关文章推荐
- LeetCode OJ:Evaluate Reverse Polish Notation
- LeetCode OJ - Evaluate Reverse Polish Notation
- LeetCode OJ 之 Evaluate Reverse Polish Notation (求逆波兰表达式的值)
- LeetCode OJ:Evaluate Reverse Polish Notation(逆波兰表示法的计算器)
- [LeetCode OJ] Evaluate Reverse Polish Notation 解题报告
- Leetcode OJ: Evaluate Reverse Polish Notation
- 【LeetCode OJ】Evaluate Reverse Polish Notation
- LeetCode OJ --问题与解答 Evaluate Reverse Polish Notation
- Leetcode OJ : Evaluate Reverse Polish Notation Stack C++ solution
- 【LeetCode OJ】Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- LeetCode之Evaluate Reverse Polish Notation
- 【LintCode】Evaluate Reverse Polish Notation 逆波兰表达式求值
- leetcode 150: Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation(堆栈)
- LeetCode 150 Evaluate Reverse Polish Notation
- [Leetcode]Evaluate Reverse Polish Notation
- leetcode -- Evaluate Reverse Polish Notation -- stack的运用,有知识点
- [算法]Evaluate Reverse Polish Notation
- evaluate-reverse-polish-notation