布尔表达式
来源:互联网 发布:淘宝账号贷款秒批 编辑:程序博客网 时间:2024/05/01 00:25
布尔表达式
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
输入一个布尔表达式,请你输出它的真假值。
比如:( V | V ) & F & ( F | V )
V表示true,F表示false,&表示与,|表示或,!表示非。
上式的结果是F- 输入
- 输入包含多行,每行一个布尔表达式,表达式中可以有空格,总长度不超过1000
- 输出
- 对每行输入,如果表达式为真,输出"V",否则出来"F"
- 样例输入
( V | V ) & F & ( F| V)!V | V & V & !F & (F | V ) & (!F | F | !V & V)(F&F|V|!V&!F&!(F|F&V))
- 样例输出 与表达式求值类似,只要注意!特殊判断即可
FVV
#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<iomanip>#include<queue>#include<stack>#include<vector>#include<set>#include<map>using namespace std;char s[1005];stack<bool>B;stack<char>C;int main(){ while(cin.getline(s,1000,'\n')){int len=strlen(s);while(!B.empty())B.pop();while(!C.empty())C.pop();for(int i=0;i<len;++i){if(s[i]==' ')continue;if(s[i]=='V'){bool tmp=true;while(!C.empty()&&C.top()=='!') {C.pop();tmp=!tmp;}B.push(tmp);}else if(s[i]=='F'){bool tmp=false;while(!C.empty()&&C.top()=='!'){C.pop();tmp=!tmp;}B.push(tmp);}else if(s[i]=='('||s[i]=='!'){C.push(s[i]);}else if(s[i]==')'){while(C.top()!='('){char op=C.top();C.pop();bool tmp1=B.top();B.pop();bool tmp2=B.top();B.pop();if(op=='&')B.push(tmp2&&tmp1);else if(op=='|') B.push(tmp2||tmp1);}C.pop();while(!C.empty()&&C.top()=='!'){bool tmp=B.top();B.pop();B.push(!tmp);C.pop();}}else if(s[i]=='&'){while(!C.empty()&&C.top()=='&'){C.pop();bool tmp1=B.top();B.pop();bool tmp2=B.top();B.pop();B.push(tmp1&&tmp2);}C.push(s[i]);}else if(s[i]=='|'){while(!C.empty()&&(C.top()=='|'||C.top()=='&')){bool tmp1=B.top();B.pop();bool tmp2=B.top();B.pop();char op=C.top();C.pop();if(op=='&')B.push(tmp1&&tmp2);else if(op=='|')B.push(tmp1||tmp2);}C.push(s[i]);}}while(!C.empty()) {bool tmp1=B.top();B.pop();bool tmp2=B.top();B.pop();char op=C.top();C.pop();if(op=='&')B.push(tmp1&&tmp2);else if(op=='|')B.push(tmp1||tmp2);}if(B.top())cout<<"V"<<endl;else cout<<"F"<<endl;}return 0;}
阅读全文
0 0
- 布尔表达式
- 布尔表达式
- 布尔表达式判别程序
- Ruby系列:布尔表达式
- Java if(布尔表达式)
- 布尔表达式解题报告
- 布尔表达式的验证
- 布尔表达式问题
- 判断布尔表达式
- 布尔(Boolean)表达式
- C++编写布尔表达式
- Python复合布尔表达式
- 3515 翻译布尔表达式
- 翻译布尔表达式
- 翻译布尔表达式
- sdut 翻译布尔表达式
- 布尔表达式的判断设置
- 布尔表达式和选择结构
- filebeat接入数据kafka
- View和ViewGroup
- unexcepted token 错误和XXX is not a function错误的解决办法
- 如何实施代码重构
- Java关于数据结构的实现:散列
- 布尔表达式
- html5标签大全
- java反射机制的作用与优点
- Java——HashSet和TreeSet的区别
- 使用独立的HTML文件的URL服务,并在其中引用服务器中的图片
- C# 索引器
- Redis 集合(Set)
- 【Lua】初探协程
- Three.js 中利用反距离权重插值模拟