#include <bits/stdc++.h>
using namespace std;
string str1[10000];
string evaluation(string &expression) {
// write your code here
int a=0,b=0,c=0,d=0,sec=0;
int i=0,j=0,pos=0;
int x=expression.size();
string str=expression;
int n=0;
for(i=0;i<x;i++)
{
if(str[i]==' ')
{
str1[j++]=str.substr(pos,i-1);
pos=i+1;
if(n==1)
{
if(i-pos>3)
{
sec=1;
break;
}
else n=0;
}
else n=1;
}
i++;
if(i==x-1)
str1[j++]=str.substr(pos,x-1);
}
for(i=0;i<j;i++)
{
if(str1[0]=="or" || str1[0]=="and" || str1[j-1]=="or" || str1[j-1]=="and")
{
sec=1;
break;
}
if(str1[i]=="true") a++;
else if(str1[i]=="false") b++;
else if(str1[i]=="or") c++;
else if(str1[i]=="and") d++;
}
if(sec==1 || a+b!=c+d+1) return "error";
else{
if(c!=0)
{
if(a!=0) return "true";
else return "false";
}
else{
if(b!=0) return "false";
else return "true";
}
}
}
int main()
{
cout << array.size();
string s="and or and or true false true";
string n=evaluation(s);
cout << n << endl;
return 0;
}
c++实现语法输入 的判断(true,false,or,and)
最新推荐文章于 2024-03-05 10:22:32 发布