TAG
- 芝士水题、算法 − 【 S T L − s t a c k 】 芝士水题、算法 - 【STL - stack】 芝士水题、算法−【STL−stack】时间复杂度
- O ( N ) O(N) O(N)
//
#include <bits/stdc++.h>
#include <cctype>
using namespace std;
// #define int long long
void solve() {
string s;
cin >> s;
stack<int> sk;
for (int i = 0; i < s.size(); i++) {
if (isdigit(s[i])) {
int tt = 0;
while (isdigit(s[i])) tt = (tt << 3) + (tt << 1) + (s[i] - '0'), i++;
sk.push(tt);
} else if (s[i] == '.' || s[i] == '@') {
} else {
int b = sk.top(); sk.pop();
int a = sk.top(); sk.pop();
int tt;
switch (s[i]) {
case '+': tt = a + b; break;
case '-': tt = a - b; break;
case '*': tt = a * b; break;
case '/': tt = a / b; break;
}
sk.push(tt);
}
}
printf("%d\n", sk.top());
}
signed main() {
int t = 1;
// scanf("%d", &t);
while (t--) solve();
return 0;
}
实现细节
- `
参考示意图
-
`
参考链接
作者 | 乐意奥AI