leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0224.cpp (738B)


0 class Solution { 1 public: 2 int calculate(const string &s) const { 3 int res = 0; 4 vector<int> signs(2, 1); 5 for (int i = 0; i < s.size(); i++) { 6 if (s[i] >= '0') { 7 int number = 0; 8 while (i < s.size() && isdigit(s[i])) { 9 number = 10 * number + (s[i++] - '0'); 10 } 11 res += signs.back() * number; 12 signs.pop_back(); 13 i--; 14 } else if (s[i] == '(' && s[i + 1] == '-') { 15 } else if (s[i] == ')') 16 signs.pop_back(); 17 else if (s[i] != ' ') 18 signs.push_back(signs.back() * (s[i] == '-' ? -1 : 1)); 19 } 20 return res; 21 } 22 };