150.逆波兰表达式求值

简介: 150.逆波兰表达式求值

150. 逆波兰表达式求值


知识点

字符串倒置

#include <cstring>
#include <algorithm>
int main()
{
      string str1;
      cin>>str1;
      cout<<"原始字符串是:"<<str1<<endl;
      reverse(str1.begin(),str1.end());
      cout<<"转换后的字符串是:"<<str1<<endl;
      return 0;
}


string转int

string num;
int tmp = stoi(num);


小白解法

class Solution
{
public:
    int evalRPN(vector<string> &tokens)
    {
        stack<int> stk;
        unordered_map<string, int> Hash =
            {
                {"+", 1},
                {"-", 2},
                {"*", 3},
                {"/", 4}};
        for (auto it : tokens)
        {
            if (Hash.count(it))
            {
                int b = stk.top();
                stk.pop();
                int a = stk.top();
                stk.pop();
                int tmp;
                switch (Hash[it])
                {
                case 1:
                    tmp = a + b;
                    break;
                case 2:
                    tmp = a - b;
                    break;
                case 3:
                    tmp = a * b;
                    break;
                case 4:
                    tmp = a / b;
                    break;
                default:
                    break;
                }
                stk.push(tmp);
            }
            else
            {
                stk.push(stoi(it));
            }
        }
        return stk.top();
    }
};


这题很简单,但编译时出现了很多问题,首先要明确哈希表是<string,int> 映射的。所以下面初始化过程字符串要用双引号表示,整型应该不用引号表示。错误示范{'+','1'},正确的是{"+",1}

目录
相关文章
|
Java C++ Python
使用getline()从文件中读取一行字符串
C++ 中的 `getline()` 函数用于从文件流中读取整行文本。它可以从 `fstream` 和 `ifstream` 对象中调用。有两种语法形式:一种读取到 `\n` 或达到指定缓冲区大小,另一种允许指定自定义分隔符。如果文件流中的字符数量超过缓冲区大小,可能导致读取失败。示例代码展示了如何使用 `getline()` 读取单行和多行文本。
179 1
|
存储 小程序 安全
基于微信小程序+SpringBoot的停车位共享管理系统的设计和实现(二)
基于微信小程序+SpringBoot的停车位共享管理系统的设计和实现
608 0
基于微信小程序+SpringBoot的停车位共享管理系统的设计和实现(二)
|
存储 缓存 NoSQL
3w字深度好文|Redis面试全攻略
3w字深度好文|Redis面试全攻略
196 1
|
Shell Linux 网络安全
【Docker系列】如何部署Docker并进行小优化(内含一键安装脚本)
【Docker系列】如何部署Docker并进行小优化(内含一键安装脚本)
【Docker系列】如何部署Docker并进行小优化(内含一键安装脚本)
GEE错误:Dictionary does not contain key: bucketMeans.
GEE错误:Dictionary does not contain key: bucketMeans.
169 0
|
NoSQL Go 数据库
慎写指针类型的全局变量
慎写指针类型的全局变量
165 0
慎写指针类型的全局变量
|
JSON 前端开发 JavaScript
Postman 使用教程 - 手把手教你 API 接口测试
Postman 是一套 API 接口测试工具,它的强大在于灵活趁手的接口测试功能,极大的提高了 API 测试效率。本教程将由浅入深,带领大家一起学习如何使用 Postman 进行接口测试。
2483 0
|
C++
VS Code 用户自定义配置推荐 #52
VS Code 用户自定义配置推荐 #52
189 0
|
Java 开发工具 开发者
基于springboot架构 钉钉扫码登录第三方应用
• 获取appId及appSecret • 项目应用 • 1.配置文件增加如下配置 • 2.下载sdk • 3.将sdk引入项目 • 3.修改登录跳转方法/login • 4.登录页修改 • 5.扫码重定向实现登录的方法如下 • 6.重写UsernamePasswordToken
基于springboot架构 钉钉扫码登录第三方应用
|
存储 自然语言处理 文件存储
iOS小知识:nib本地化、图片本地化字符串本地化(APP 内的本地化切换)
iOS小知识:nib本地化、图片本地化字符串本地化(APP 内的本地化切换)
477 0
iOS小知识:nib本地化、图片本地化字符串本地化(APP 内的本地化切换)