表示式求值

2021-08-14 23:06:01 字數 1064 閱讀 9132

給乙個用字串表示的表示式陣列,求出這個表示式的值。

注意事項

表示式只包含整數,+,-,*,/,(,).

您在真實的面試中是否遇到過這個題?

yes

樣例對於表示式(2*6-(23+7)/(1+2)), 對應的陣列為:

[

"2", "*", "6", "-", "(",

"23", "+", "7", ")", "/",

"(", "1", "+", "2", ")"

],

其值為2

class solution 

stackoperators;

stacknums;

for (int i = 0; i < expression.size(); i++)

nums.push(num);

} else else if (op == '(') else if (op == ')')

operators.pop();

} else if (op == '+' || op == '-')

operators.push(op);

} else if (op == '*' || op == '/')

operators.push(op);}}

}while (!operators.empty())

return nums.top();

}void popandexe(stack& operators, stack& nums)

int exe(int num1, int num2, char op) else if (op == '-') else if (op == '*') else if (op == '/')

return result;

}};

表示式求值

程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...

表示式求值

既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...

表示式求值

寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...