zoukankan      html  css  js  c++  java
  • [栈操作] [洛谷] P1449 后缀表达式

    这道题上来没啥思路

    也读不懂题

    有天听巨巨说是个栈操作

    然后又放了几天

    突然就把题读懂了

    知道是个栈就特别简单了…

    注意运算顺序就行

    #include <iostream>
    #include <stack>
    using namespace std;
    
    typedef long long ll;
    
    int main()
    {   
    
        stack <ll> num;
    
        string s;
    
        cin>>s;
    
        for(int i = 0; i < s.length(); i++)
        {
            if(s[i] >= '0' && s[i] <= '9')
            {
                int tmp = 0;
    
                while(s[i] != '.' && s[i] != '@')
                {
                    tmp = tmp * 10 + s[i] - '0';
                    i++;
                }
    
                num.push(tmp);
            }
            
            if(s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/')
            {
                int a = 0, b = 0;
    
                a = num.top();
                
                num.pop();
    
                b = num.top();
                
                num.pop();
    
                if(s[i] == '+')
                {
                    b += a;
                }
                else if(s[i] == '-')
                {
                    b -= a;
                }
                else if(s[i] == '*')
                {
                    b *= a;
                }
                else
                {
                    b /= a;
                }
    
                num.push(b);
            }
    
        }
    
        ll ans = 0;
    
        ans = num.top();
    
        cout<<ans<<endl;
    
        return 0;
    }
  • 相关阅读:
    通用Logging框架设计
    slf4j 与各个 logging框架的适配器说明
    优雅的使用Spring
    Python : 反射
    Python: Tools
    Python : Class
    Python : Module
    Python 入门:基本语法
    docker:版本变更
    Linux: yum配置说明
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270544.html
Copyright © 2011-2022 走看看