80求助
查看原帖
80求助
1038207
SolRise楼主2023/12/2 10:01
#include<bits/stdc++.h>
using namespace std;
char s[255];
bool t[255],a[255],a1[255];
int main()
{
	cin.getline(s,256);
	int len=strlen(s),num1=0,num2=0,num3=0;
	if(s[0]=='o'||s[0]=='a'||s[len-1]=='r'||s[len-1]=='d'||s[len-1]=='t')
	{
		cout<<"error";
		return 0;
	}
	for(int i=0;i<len;)
	{
		if(s[i]=='t')
		{
			t[++num1]=!t[num1];
			i+=5;
			if(s[i]=='f'||s[i]=='n'||s[i]=='t')
			{
				cout<<"error";
				return 0;
			}
		}
		else if(s[i]=='f')
		{
			num1++;
			i+=6;
			if(s[i]=='f'||s[i]=='n'||s[i]=='t')
			{
				cout<<"error";
				return 0;
			}
		}
		else if(s[i]=='o')
		{
			a[++num2]=1;
			i+=3;
			if(s[i]=='a'||s[i]=='o')
			{
				cout<<"error";
				return 0;
			}
		}
		else if(s[i]=='a')
		{
			a[++num2]=0;
			i+=4;
			if(s[i]=='a'||s[i]=='o')
			{
				cout<<"error";
				return 0;
			}
		}
		else if(s[i]=='n')
		{
			t[num1+1]=!t[num1+1];
			i+=4;
			if(s[i]!='f'&&s[i]!='t'&&s[i]!='n')
			{
				cout<<"error";
				return 0;
			}
		}
	}
	if(num2!=num1-1)
	{
		cout<<"error";
		return 0;
	}
	for(int i=2;i<=num1;i++)
	{
		if(a[i-1])
		{
			a1[++num3]=t[i-1];
			continue; 
		} 
		a1[++num3]=t[i]&&t[i-1];
	}
	bool f=a1[1];
	for(int i=2;i<=num3;i++)
		f=f||a1[i];
	if(f)
		cout<<"true";
	else
		cout<<"false";
	return 0;
}
2023/12/2 10:01
加载中...