華為oj中級 表示式求值

2021-07-29 15:51:34 字數 1581 閱讀 5827

描述

給定乙個字串描述的算術表示式,計算出結果值。

輸入字串長度不超過100,合法的字元包括」+, -, *, /, (, )」,」0-9」,字串內容的合法性及表示式語法的合法性由做題者檢查。本題目只涉及整型計算。

/*

功能: 對輸入的字串表示式進行求值計算,並輸出結果。

輸入:string inputstring:表示式字串

返回: int :正常返回true,失敗返回false

*/public static boolean calculate(string inputstring)

獲取計算結果(int型)

public static int getresult()

知識點 棧

執行時間限制 10m

記憶體限制 128

輸入 輸入算術表示式

輸出 計算出結果值

樣例輸入 400+5

樣例輸出 405 true

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

//先轉換為字尾表示式

int main()

else

tem1 = s[j];

v.push_back(tem1);

}i = j;}}

v.push_back(tem);

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

else

else

stack1.pop();

}else

if (v[i] == "+" || v[i] == "-")

stack1.push(v[i]);

}else

stack1.push(v[i]);}}

}}

while (!stack1.empty())

/*for (int i = 0; i < v_after.size(); i++)

cout << v_after[i] << endl;*/

//計算字尾表示式

int num;

int op1, op2;

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

else

else

if (v_after[i] == "-")

else

if (v_after[i] == "*")

else}}

v.clear();

v_after.clear();

cout

<< stack2.top() << endl;

stack2.pop();

}return

0;}

表示式求值(OJ)

給定乙個字串描述的算術表示式,計算出結果值。輸入字串長度不超過100,合法的字元包括 0 9 字串內容的合法性及表示式語法的合法性由做題者檢查。本題目只涉及整型計算。功能 對輸入的字串表示式進行求值計算,並輸出結果。輸入 string inputstring 表示式字串 返回 int 正常返回tru...

OJ 中綴表示式求值

字尾表示式複習 題目內容 通過把 中綴轉字尾 和 字尾求值 兩個演算法功能整合在一起 非簡單的順序呼叫 實現對中綴表示式直接求值,新演算法還是從左到右掃瞄中綴表示式,但同時使用兩個棧,乙個暫存操作符,乙個暫存運算元,來進行求值。支援 五種運算 輸入格式 共1行,為1個字串,即乙個中綴表示式,其中每個...

表示式求值

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