1 条题解
-
0
题解
使用
stack<long long>。遇到数字直接入栈。遇到运算符时:
b = top(); pop(); a = top(); pop();注意减法必须计算
a-b,不能写反。计算结果重新入栈,最后栈中只剩答案。
时间复杂度 。
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; stack<long long> st; while (n--) { string t; cin >> t; if (t=="+" || t=="-" || t=="*") { long long b=st.top(); st.pop(); long long a=st.top(); st.pop(); if (t=="+") st.push(a+b); else if (t=="-") st.push(a-b); else st.push(a*b); } else { st.push(stoll(t)); } } cout << st.top() << '\n'; return 0; }
- 1
信息
- ID
- 5159
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
粤公网安备44195502000252号