Description
判断公式的F或V
Input
多组用例,每组用例为以字符串表示公式,以文件尾结束输入
Output
对于每组用例,输出公式的结果F or V
Sample Input
( V | V ) & F & ( F| V)
!V | V & V & !F & (F | V ) & (!F | F | !V & V)
(F&F|V|!V&!F&!(F|F&V))
Sample Output
Expression 1: F
Expression 2: V
Expression 3: V
Solution
模拟,用LL1
Code
#include<iostream>
#include<string>
using namespace std;
string rep[14][2]=
{
" ","",
"!!","",
"(V)","V",
"(F)","F",
"!V","F",
"!F","V",
"V&V","V",
"V&F","F",
"F&V","F",
"F&F","F",
"V|V","V",
"V|F","V",
"F|V","V",
"F|F","F"
};
string s;
int main()
{
int i,t,count=1;
while(getline(cin,s))
{
while(1)
{
for(i=0;i<14;i++)
if((t=s.find(rep[i][0]))!=string::npos)
{
s.erase(t,rep[i][0].length());
s.insert(t,rep[i][1]);
break;
}
if(i==14) break;
}
cout<<"Expression "<<count++<<": "<<s<<endl;
}
return 0;
}