问题描述:
给定一个后缀序列,要求求值,只有加减
样例输入:
输入:
123++4-
输出:
2
思路:
简单题
遇到数字,转为 int 型存入栈,遇到操作符,弹出栈顶的两个元素,运算即可。最后的结果为栈顶元素
后缀相关知识:栈的应用之表达式求值(后缀式运算)
#include <string>
#include <iostream>
#include <stack>
using namespace std;
stack<int> st;
int main(){
string str;
cin >> str;
int len = str.length();
for(int i = 0; i < len; i++){
if(str[i] >= '0' && str[i] <= '9'){
st.push(str[i] - '0');
}
else if(str[i] == '+'){
int a = st.top();
st.pop();
int b = st.top();
st.pop();
int ans = b + a;
st.push(ans);
}
else{
int a = st.top();
st.pop();
int b = st.top();
st.pop();
int ans = b - a;
st.push(ans);
}
}
cout << st.top() << endl;
return 0;
}