牛客網 校招題 使用棧進行表示式求值

2021-09-11 05:25:30 字數 1319 閱讀 4192

牛客網 校招題 使用棧進行表示式求值

簡單計算器

時間限制:1秒

空間限制:65536k

熱度指數:2762

讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。

測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
示例1

1 + 2

4 + 2 * 5 - 7 / 11

0

3.00

13.36

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

std::map<

char

,int

> prio;

intfpow

(int base,

int exp)

return ans;

}double

d2s(string a)

return ans;

}double

calc

(double a,

double b,

char op)

intmain

(int argc,

char

const

*ar**)

opcode.

push

(str[i]);

}else

} string tmp="";

while

(str[i]

<=

'9'&&str[i]

>=

'0'&&iif(tmp!="")

}//到這裡棧中還會剩下最後一對,不要忘記

while

(!opcode.

empty()

)printf

("%.2lf\n"

, oprand.

top())

;}return0;

}

牛客網 程式設計題 表示式求值

給出乙個布林表示式的字串,比如 true or false and false,表示式只包含true,false,and和or,現在要對這個表示式進行布林求值,計算結果為真時輸出true 為假時輸出false,不合法的表達時輸出error 比如 true true 表示式求值是注意and 的優先順序...

使用棧進行基礎的表示式計算

1.使用乙個數字棧乙個符號棧 2.通過乙個index值遍歷表示式 3.如發現是數字,就直接放入數字棧 4.如發現是符號,進行優先順序比較,如果當前的操作符的優先順序小於或者等於棧頂的操作符,就需要從數字棧中pop兩個數字,從符號棧中pop乙個符號進行計算,將得到的結果放入數字棧,將當前的符號放入符號...

牛客刷題 正規表示式的匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 class solutio...