We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 6f1f7c5 commit e7ba2e9Copy full SHA for e7ba2e9
Basic Calculator.cpp
@@ -0,0 +1,49 @@
1
+class Solution {
2
+public:
3
+ int calculate(string s) {
4
+ int result=0;
5
+ int sum=0;
6
+ int sign=1;
7
+ stack<int>st;
8
+ int n=s.size();
9
+ for(int i=0;i<n;i++)
10
+ {
11
+ if(isdigit(s[i]))
12
13
+ sum=s[i] -'0';
14
+ while(i+1<n && isdigit(s[i+1]))
15
16
+ sum = sum*10 + (s[i+1] -'0');
17
+ i++;
18
+ }
19
+ result+=sum*sign;
20
21
+
22
+ else if(s[i] == '+')
23
24
+ sign=1;
25
26
+ else if (s[i] == '-')
27
28
+ sign=-1;
29
30
+ else if (s[i] == '(')
31
32
+ st.push(result);
33
+ st.push(sign);
34
+ result=0;
35
36
37
+ else if(s[i] == ')')
38
39
+ int xsign=st.top();
40
+ st.pop();
41
+ int xresult= st.top();
42
43
+ result=result*xsign + xresult;
44
45
46
47
+ return result;
48
49
+};
0 commit comments