各位大牛帮忙看下,这样为啥会RE???
查看原帖
各位大牛帮忙看下,这样为啥会RE???
440574
CarryJie楼主2021/5/24 17:58
#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

const int N = 26;

int parent[N],lchild[N],rchild[N];

void pre(int root)
{
	printf("%c",root + 'a');
	if(lchild[root] != -1) pre(lchild[root]);
	if(rchild[root] != -1) pre(rchild[root]);
}

int main()
{
	int n;
	scanf("%d",&n);
	
	memset(parent,-1,sizeof(parent));
	memset(lchild,-1,sizeof(lchild));
	memset(rchild,-1,sizeof(rchild));
	
	while(n--)
	{
		getchar();
		char p,l,r;
		scanf("%c%c%c",&p,&l,&r);
		
		if(l != '*') lchild[p-'a'] = l - 'a',parent[l-'a'] = p - 'a';
		if(r != '*') rchild[p-'a'] = r - 'a',parent[r-'a'] = p - 'a';
	}
	
	int root;
	for(int i=0;i<26;i++) if(parent[i] == -1 && !(lchild[i] == -1 && rchild[i] == -1)) root = i;
	
	pre(root);
	
	return 0;
}

我用的方法当然是比较朴实的方法,但我自己电脑上没问题,提交了却RE就很迷惑,还请各位大牛帮忙看下

2021/5/24 17:58
加载中...