NC212914 牛牛与后缀表达式

简介: NC212914 牛牛与后缀表达式

题目: NC212914 牛牛与后缀表达式 ,哈哈,我们今天来看一道简单的数据结构题嘛,这是选自牛客上的一道题,好了,我们一起来看看题意吧:

考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面!

题目传送门: NC212914 牛牛与后缀表达式

思路:

这道题没什么好说的,根据题意做就是,采用栈这种数据结构比较好做,当然,也可以用数组,还有其他方法!

我们来看看成功AC的代码吧:

#define ll long long
ll calc(string x){
    ll num=0;
    for(int i=0;i<x.size();i++) num=num*10+(x[i]-'0');
    return num;
}
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
    long long legalExp(string str) {
        // write code here
        stack<ll> st;
        string s = str;
        string s2="";
        for(int i=0;i<s.size();i++){
           if(s[i]!='#'&&s[i]!='+'&&s[i]!='-'&&s[i]!='*'){
               s2+=s[i];
           }
           if(s[i]=='#'&&s[i]!='+'&&s[i]!='-'&&s[i]!='*')  { ll t = calc(s2) ; st.push(t); s2=""; }
           if(s[i]=='+') {
               ll x2=st.top(); st.pop(); ll x1=st.top(); st.pop();
               st.push(x2+x1);
           }
           if(s[i]=='-') {
               ll x2=st.top(); st.pop(); ll x1=st.top(); st.pop();
               st.push(x1-x2);
           }
           if(s[i]=='*') {
               ll x2=st.top(); st.pop(); ll x1=st.top(); st.pop();
               st.push(x2*x1);
           }
        }
        return st.top();
    }
};


目录
打赏
0
0
0
0
0
分享
相关文章
|
8月前
|
【题解】NowCoder NC313 两个数组的交集
【题解】NowCoder NC313 两个数组的交集
53 6
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
【牛客-算法】NC56 回文数字
🚩 前言 🔥 该专栏作为算法题笔记,记录算法的思路、遇到的问题,以及能跑的代码,持续更新中! 🔥 推荐一款面试、刷题神器牛客网:👉开始刷题学习👈
73 0
力扣-每日一题“罗马数字转整数”
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10
54 0
题目:输出n行杨辉三角形
题目:输出n行杨辉三角形
105 0
【蓝桥杯】蓝桥杯省赛---乘法表(理解题意是关键)
前言 本题来自蓝桥杯官网 题目链接:用户登录
108 0
【牛客-算法】NC52 有效括号序列
【牛客-算法】NC52 有效括号序列
188 0
【牛客-算法】NC52 有效括号序列
【牛客刷题-算法】NC103 反转字符串
【牛客刷题-算法】NC103 反转字符串
93 0
【牛客刷题-算法】NC103 反转字符串