# 題目
zerojudge a120 中置式轉後置式
# 解題思路
目前沒東西...
# 程式碼
#include <bits/stdc++.h> | |
using namespace std; | |
#define Rabbir_Reaper ios::sync_with_stdio(0);cin.tie(0); | |
int main(){ | |
Rabbir_Reaper | |
stack<char> stk; | |
string s,ans; | |
cin>>s; | |
for(int i=0;i<(int)s.size();i++){ | |
if(s[i]>='A' && s[i]<='Z'){ | |
ans+=s[i]; | |
}else if(s[i]=='*' || s[i]=='/'){ | |
if(!stk.empty() && (stk.top()=='*' || stk.top()=='/')){ | |
ans+=stk.top(); | |
stk.pop(); | |
} | |
stk.push(s[i]); | |
}else if(s[i]=='+' || s[i]=='-'){ | |
if(!stk.empty() && (stk.top()=='+' || stk.top()=='-' || stk.top()=='*' || stk.top()=='/')){ | |
while(!stk.empty() && stk.top()!='('){ | |
ans+=stk.top(); | |
stk.pop(); | |
} | |
} | |
stk.push(s[i]); | |
}else{ // '(' ')' | |
if(s[i]==')'){ | |
while(stk.top()!='('){ | |
ans+=stk.top(); | |
stk.pop(); | |
} | |
stk.pop(); | |
}else{ | |
stk.push(s[i]); | |
} | |
} | |
} | |
while(!stk.empty()){ | |
ans+=stk.top(); | |
stk.pop(); | |
} | |
cout<<ans; | |
} |