應該是最短的**了吧(指正確答案qaq)
#include
#include
#include
#include
#include
using
namespace std;
class
solution
else
if(s[i]
=='-'
)else
if(s[i]
=='('
)//將迄今為止計算的結果和符號新增到棧上
else
if(s[i]
==')')}
//迴圈退出的時候,肯定最後乙個是數字(合法表示式),要把result加上該數字,而且別忘了倒數第二位的正負號
return result +
(symbol*temp);}
//錯誤示範:
//因為剛寫過字串解碼,所以下手就寫了
//寫完就是通不過,解決了好多情況
//最後在"0-2147483647"倒下了,不寫了mmp
//放在這裡長個教訓!!
// stacknums;
// stackchars;
// bool allisnum(string str)
// else
//
// }
// return true;
// }
// int calculate(string s) else if (s[ptr]>='0' && s[ptr]<='9') else if (s[ptr]=='-' || s[ptr]=='+' || s[ptr]=='(')
// } else else if (cal=='-')
//
// chars.pop();
// cal = chars.top();
// }
// chars.pop(); //'('出棧
// }
// ptr++;
// }
// if (allisnum(s))
// return num;
// if (num!=0)
// nums.push(num);
// vectorchars_vec;
// vectornums_vec;
// int num1 = 0;
// int num2 = 0;
// while (!chars.empty())
//
// while (!nums.empty())
//
// int nums_ptr = nums_vec.size();
// for (int i=chars_vec.size()-1;i>=0;i--)else if(chars_vec[i]=='-')
// }
// res = nums_vec[0];
// return res;
// }};
intmain()
再次感嘆我就是個菜雞qaq LeetCode224 基本計算器(棧)
解題思路 1 雙棧模擬,乙個用來存數,乙個用來存操作符。需要考慮 後面緊跟 這種情況 2 遞迴 遇到左括號開始遞迴,遇到右括號結束遞迴,返回值。1 class solution 2def calculate self,s 3 s s 4 stack 5 op 6 val 0 7 flag false...
leetcode 224 括號匹配
此題準確的說是乙個括號匹配問題,我們可以從裡到外拆解問題。每遇到乙個後括號,就把前面的提出來解決,這樣就沒有內層了,可以用棧實現,如下 class solution def calculate self,s str int iflen s 0 return 0 stack defprocess l ...
leetcode 224 基本計算器
題目 基本計算器 實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例1 輸入 1 1 輸出 2 示例2 輸入 2 1 2 輸出 3 示例3 輸入 1 4 5 2 3 6 8 輸出 23 說明 c include include cl...