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();
    }
};


相关文章
|
7月前
|
人工智能 网络协议 BI
PTA-求10个整数中的偶数的和
求10个整数中的偶数的和
50 0
##CC10 牛牛的双链表求和
##CC10 牛牛的双链表求和
57 0
|
6月前
|
C++
【PTA】L1-046 整除光棍(C++)
【PTA】L1-046 整除光棍(C++)
66 1
|
7月前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
7月前
|
C++
【PTA】L1-025 正整数A+B (C++)
【PTA】L1-025 正整数A+B (C++)
125 0
【PTA】L1-025 正整数A+B (C++)
|
7月前
|
C++
【PTA】​ L1-080 乘法口诀数列​(C++)
【PTA】​ L1-080 乘法口诀数列​(C++)
98 0
【PTA】​ L1-080 乘法口诀数列​(C++)
|
7月前
|
算法 C语言
【牛客-算法】NC56 回文数字
🚩 前言 🔥 该专栏作为算法题笔记,记录算法的思路、遇到的问题,以及能跑的代码,持续更新中! 🔥 推荐一款面试、刷题神器牛客网:👉开始刷题学习👈
59 0
剑指offer JZ49把字符串转换成整数
剑指offer JZ49把字符串转换成整数
39 0
|
存储
每日一题(两数相加)
每日一题(两数相加)