棧 LeetCode224 簡易計算器

2021-10-07 02:02:16 字數 1766 閱讀 4671

應該是最短的**了吧(指正確答案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...