描述
如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.例:如下图中的二叉树T1是对称的,T2是不对称的。
二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。
输入描述
二叉树用顺序结构给出,若读到#则为空。
输出描述
如果二叉树是对称的,输出“Yes”,反之输出“No”
这道题主要考的是判断二叉树的应用及判断
用例输入 ABCDE
用例输出 Yes
接下来就是代码了(能AC,头文件用iostream
就行了)
#include <iostream>
#include <cstdio>
#include <iomanip>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;
int main(){
string s;
cin>>s;
if(s.size()%2==0){
cout<<"No";
return 0;
}
for(int i=1;i<s.size();i+=2){
if((s[i]=='#'&&s[i+1]!='#')||(s[i]!='#'&&s[i+1]=='#')){
cout<<"No";
return 0;
}
}
cout<<"Yes";
return 0;
}
OK,最后是用例运行结果了
ABCDE
Yes
--------------------------------
Process exited after 6.884 seconds with return value 0
请按任意键继续. . .