题目:1368:对称二叉树(tree_c)
题目描述
如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.
例:如下图中的二叉树T1是对称的,T2是不对称的。
二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。
输入
二叉树用顺序结构给出,若读到#则为空。
输出
如果二叉树是对称的,输出“Yes”,反之输出“No”。
时空限制
1s / 64MB
样例输入
ABCDE样例输出
Yes代码
#include<bits/stdc++.h>usingnamespacestd;constintN=15+10;chars[N];intl,r;boolcheck(charstr[]){for(inti=1;i<=strlen(str+1);i++){l=r=0;if(2*i<=strlen(str+1)&&str[2*i]!='#')l=1;if(2*i+1<=strlen(str+1)&&str[2*i+1]!='#')r=1;if(l+r==1)returnfalse;}returntrue;}intmain(){cin>>s+1;if(check(s))cout<<"Yes";elsecout<<"No";return0;}