求助!!!90pts
查看原帖
求助!!!90pts
1077293
pengchengen楼主2024/12/20 19:39

90分求调

#include<bits/stdc++.h>
using namespace std;
bool fh(char x){
	if(x=='a'||x=='o'||x=='n') return true;
	return false;
}
string erasespace(string s){
	string a="";
	for(int i=0;i<s.size();i++) if(s[i]!=' ') a+=s[i];
	return a;
}
string erasenot(string s){
	for(int i=0;i<s.size()-1;i++){
		if(s[i]=='n'&&s[i+1]=='n'){
			s[i]=s[i+1]=' ';
		}
	}
	return erasespace(s);
}
bool bhf(string s){
	if(s[0]=='a'||s[0]=='o'||fh(s[s.size()-1])) return true;
	s=erasenot(s);
	bool f=false;
	for(int i=0;i<s.size()-1;i++){
		if(fh(s[i])==false&&fh(s[i+1])==false) return true;
		if((s[i]=='a'||s[i]=='o')){
			if((fh(s[i+1])==false||s[i+1]=='n')) continue;
			f=true;
			break;
		}
		
	}
	return f;
}

string s;
string x;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	while(cin>>x) s+=x[0];
	if(bhf(s)){
		cout<<"error";
		return 0;
	} 
	s=erasenot(s);
	for(int i=0;i<s.size()-1;i++){
		if(s[i]=='n'){
			if(s[i+1]=='t') s[i+1]='f';
			else s[i+1]='t';
			s[i]=' ';
		}
	}
	s=erasespace(s);
	for(int i=1;i<s.size();i+=2){
		if(s[i]=='a'){
			if(s[i-1]==s[i+1]){
				s[i]=s[i-1]=' ';
			}else s[i]=s[i-1]=' ',s[i+1]='f';
		}
	}
	s=erasespace(s);
	for(int i=1;i<s.size();i+=2){
		if(s[i]=='o'){
			if(s[i-1]=='t'||s[i+1]=='t'){
				s[i+1]='t';
				s[i-1]=s[i]=' ';
			}else{
				s[i-1]=s[i+1]=' ';
				s[i]='f';
			}
		}
	}
	s=erasespace(s);
	if(s.size()>1) cout<<"error";
	else if(s=="t") cout<<"true";
	else cout<<"false";
	return 0;
}
2024/12/20 19:39
加载中...