LeetCode: Evaluate Reverse Polish Notation [150]

【题目】

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


【题意】

        计算用逆波兰式表示的表达式的值


【思路】

        逆波兰式其实是二叉树的遍历
        用栈求解即可,每次遇到运算符是计算栈顶的两个元素
        
        注意:
            字符串转整数时,考虑负数的情况


【代码】

class Solution {
public:
    
    int str2int(string token){
        int num=0;
        int start=0;
        int isNev = 1;
        //判断符号
        if(token[0]=='-'){isNev=-1; start++;}
        else if(token[0]=='+')start++;
        for(int i=start; i &tokens) {
        stack st;
        for(int i=0; i


你可能感兴趣的:(算法,面试,leetcode,算法,面试)