#include using namespace std; /* 中缀逻辑表达式转后缀逻辑表达式 测试用例: 0&(0|1|0) 答案: 001|0|& */ unordered_map g{{'|', 1}, {'&', 2}}; string s, t; stack stk; int main() { cin >> s; for (int i = 0; i < s.size(); i++) { if (isdigit(s[i]) || isalpha(s[i])) t += s[i]; else if (s[i] == '(') stk.push(s[i]); else if (s[i] == ')') { while (stk.top() != '(') { t += stk.top(); stk.pop(); } stk.pop(); } else { while (stk.size() && g[s[i]] <= g[stk.top()]) { t += stk.top(); stk.pop(); } stk.push(s[i]); } } while (stk.size()) { t += stk.top(); stk.pop(); } cout << t << endl; return 0; }