[UPC] Postfix Evaluation 后缀表达式求值 | 栈的简单应用

简介: 题目描述In a postfix expression, operators follow their operands. For example, [ 5 2 * ] is interpreted as 5 * 2. If there are multiple operators, each operator appears after its last operand. Here are more examples, showing how postfix compares to parenthesized expressions:

题目描述


In a postfix expression, operators follow their operands. For example, [ 5 2 * ] is interpreted as 5 * 2. If there are multiple operators, each operator appears after its last operand. Here are more examples, showing how postfix compares to parenthesized expressions:


6 3+5∗2− 等同 ( ( 6 + 3 ) ∗ 5 ) – 2 )

4 3 2∗+ 等同 4 + ( 3 ∗ 2 )


These examples show that the operand affected by an operator can be the result of a previous calculation.

Here is what you need to do: Given an integer postfix expression, you must calculate and print its value.


输入


Each input will consist of a single test case. Your program will be run multiple times on different inputs.

A single input line will contain a postfix expression containing single digit integers and operators from the following set: { +, –, /, * } (add, subtract, divide, multiply). There will be a single space between each digit and and operator. The line will contain no more than 64 operators and numbers, total.


输出


Output will be a single integer on a line by itself.


样例输入 Copy


【样例1】
6 3 + 5 * 2 –
【样例2】
6 3 + 5 2 * *
【样例3】
4 3 2 * + 


样例输出 Copy


【样例1】
43
【样例2】
90
【样例3】
10
stack<ll> st;
int main() {
  char c;
  while(cin >> c) {
    if(isdigit(c)){
      st.push(c - '0');
    }else{
      ll a = st.top();
      st.pop();
      ll b = st.top();
      st.pop();
      if(c == '+') st.push(a + b);
      else if(c == '-') st.push(b - a);
      else if(c == '*') st.push(a * b);
      else st.push(b / a);
    }
  }
  cout << st.top() << endl;
  return 0;
}
/**
**/




目录
相关文章
|
网络协议 Linux 文件存储
Postfix 邮件服务器的配置
Postfix是一种功能强大且功能多样的邮件传输代理。在本文中,我们已经了解了如何使用postfix 和 dovecot为基于系统用户帐户的单个域实现基本电子邮件服务器。我们几乎没有涉及基于 postfix 的系统的真正功能,但希望能为新用户构建提供坚实的工作基础。
1775 0
|
存储 网络协议 Linux
Postfix + Extmail 企业邮件服务器搭建
ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的IT应用环境,满足用户多变的需求,能快速进行开发、改进和升级,适应能力强的webmail系统。
752 0
Postfix + Extmail 企业邮件服务器搭建
|
网络协议 Linux 网络安全
Linux服务器---邮件服务安装postfix
安装postfix      postfix是一个快速、易于管理、安全性高的邮件发送服务,可以配合dovecot实现一个完美的邮箱服务器。1、安装postfix       [root@localhost ~]# rpm -qa | grep postfix      [root@localhos...
2391 0
|
开发工具 网络安全 数据安全/隐私保护
Postfix 邮件服务器安装与配置
#!/bin/bash yum -y install postfix dovecot; #/etc/postfix/main.cf #postfix check  postfix start  postfix stop postfix flush  postfixreload #/etc/postfix/main.
1311 0
|
网络协议 测试技术 开发工具
|
网络协议 测试技术 数据安全/隐私保护
|
测试技术 开发工具 数据安全/隐私保护
|
网络协议 安全 关系型数据库