150. 逆波兰表达式求值

发布时间 2023-09-06 18:16:36作者: timeMachine331

荣耀真题

0905没啥好说的

1+2+99-10-10 = 82,模拟这个计算

#include<iostream>
#include <string>
#include<bits/stdc++.h>



using namespace std;

int main(){

    string a;
    cin >> a;
    //long res = 0;
    long tmp = 0;
    bool flag = true;
    for (int i = 0; i < a.size(); i++){
        int n = 0;
        while (i < a.size() && a[i] != '+' && a[i] != '-'){
            n = n * 10 + (a[i] - '0');
            i++;
        }
        if (flag) tmp += n;
        else tmp -= n;
        if (i < a.size()){
            if (a[i] == '+') flag = true;
            else flag = false;
        }
        else{
            cout << tmp << endl;
        }
       
    }
    return 0;

}