#include<cstdio>
#include<cstring>
#include<stack>
using namespace std;
typedef long long ll;
char a[10010];
int main(){
//freopen("in.txt","r",stdin);
stack<ll>s;
ll i,len,k=0,b,t,d,e,f;
gets(a);
len=strlen(a);
i=0;
while(i<len){
b=0;t=0;
while(i<len&&'0'<=a[i]&&a[i]<='9'){
b*=10;
b+=a[i]-'0';
i++;
t=1;
}
if(t)s.push(b);
else if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/'){
d=s.top();
s.pop();
e=s.top();
s.pop();
switch(a[i]){
case '+':f=e+d;break;
case '-':f=e-d;break;
case '*':f=e*d;break;
case '/':f=e/d;break;
}
s.push(f);
i++;
}
else i++;
}
printf("%lld",s.top());
return 0;
}
【题解】洛谷P1449后缀表达式 栈
最新推荐文章于 2023-09-23 16:09:12 发布