后缀表达式--栈
作者:
RecSys
,
2021-04-17 11:12:33
,
所有人可见
,
阅读 347
#include <iostream>
#include <cstring>
#include <algorithm>
#include<stack>
//后缀表达式--栈
using namespace std;
string str;
stack<long long> s;
int main()
{
getline(cin,str);//有空格
for(int i=0;i<=str.size()-2;i++)
{
if(str[i]=='+')
{
long long temp=s.top();
s.pop();
s.top()+=temp;
}
else if(str[i]=='-')
{
long long temp=s.top();
s.pop();
s.top()-=temp;
}
else if(str[i]=='*')
{
long long temp=s.top();
s.pop();
s.top()*=temp;
}
else if(str[i]=='/')
{
long long temp=s.top();
s.pop();
s.top()/=temp;
}
else if(str[i]>='0'&&str[i]<='9')
{
long long x=0;
while(str[i]!=' ')
{
x=x*10+str[i++]-'0';
s.push(x);
}
}
}
cout<<s.top()<<endl;
return 0;
}