C++算法练习-day25——150.逆波兰表达式求值

题目来源:. - 力扣(LeetCode)

题目思路分析

逆波兰表达式(Reverse Polish Notation, RPN)是一种后缀表达式,在这种表达式中,运算符位于其操作数之后。例如,表达式 3 + 4 在RPN中表示为 3 4 +。RPN的一个主要优点是它不需要括号来指明运算顺序,因为运算符总是应用于其前面的两个操作数。这使得RPN在计算机内部处理时非常高效,因为我们可以使用栈这种数据结构来依次处理每个元素,遇到操作数就压栈,遇到运算符就从栈中弹出两个操作数进行计算,然后将结果压栈。

题目要求我们实现一个函数 evalRPN,该函数接受一个字符串数组 tokens,其中每个字符串要么是操作数,要么是运算符(+、-、*、/),并返回计算后的结果。

代码:

#include <stack>  
#include <vector>  
#include <string>  
#include <cstdlib> // for atoi  
  
class Solution {  
public:  
    // 判断一个字符串是否为数字  
    bool isNumber(string& token){  
        // 使用逻辑非和短路运算来简化代码,但这种方法不够直观,且只考虑了简单的运算符  
        // 更健壮的方式是使用正则表达式或遍历字符检查是否为数字  
        return !(token =="+" || token == "-"|| token =="*" || token =="/");  
    }  
      
    int eva
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neophyte0608

你的鼓励将使我创作学的更加快乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值