牛客網 校招題 使用棧進行表示式求值
簡單計算器
時間限制:1秒
空間限制:65536k
熱度指數:2762
讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。示例1
1 + 24 + 2 * 5 - 7 / 11
0
3.0013.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...