文章
25
粉丝
364
获赞
8
访问
219.0k
数组存储,一层层往下判断
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
//判断
int Judge(char *s,int start,int end,int len)
{
if (end>=len)
{
return 1;
}
for (int i = start,j=end; i<=j; i++,j--)
{
if ((s[i]=='#'&&s[j]!='#')||(s[j]=='#'&&s[i]!='#'))
{
return 0;
}
}
return Judge(s,2*start+1,2*end+2,len);//判断下一层
}
int main()
{
char s[1000];
int len;
scanf("%s",s);
printf("%s",Judge(s,0,0,strlen(s))?"YES":"NO");
//system("pause");
return 0;
}
登录后发布评论
我认为该方法不正确,题目未说这是满二叉树,因此不能这样直接获得每层的节点位置。
比如序列 ABCD##EF#G#,就不能这样计算。