#include<iostream> #include<vector> #include<cmath> using namespace std; int Stoi(string s) { int ans = 0; for(int i = 0;i < s.size();i ++) { ans += (s[i] - '0') * pow(10,s.size()-i-1); } return ans; } int main() { int t; cin >> t; while(t --) { string s; cin >> s; if(s[0] == '-') s = '0' + s; vector<int> ans; vector<char> Addsub; for(int i = 0;i < s.size();i ++) { if(s[i] != '-' && s[i] != '+') { int j = i; while(j < s.size() && s[j] >= '0' && s[j] <= '9') { j ++; } string str = s.substr(i,j-i); ans.push_back(Stoi(str)); i = j - 1; if(Addsub.size() > 0) { int x = ans[ans.size()-2]; int y = ans.back(); ans.pop_back(); ans.pop_back(); if(Addsub.back() == '+') { ans.push_back(x+y); } else { ans.push_back(x-y); } Addsub.pop_back(); } } else { Addsub.push_back(s[i]); } } cout << ans.back() << endl; } return 0; } |
Double click to view unformatted code.