1368:对称二叉树(tree_c)
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.
例:如下图中的二叉树T1是对称的,T2是不对称的。
二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。
【输入】
二叉树用顺序结构给出,若读到#则为空。
【输出】
如果二叉树是对称的,输出“Yes”,反之输出“No”。
【输入样例】
ABCDE
【输出样例】
Yes
1. #include <iostream> 2. #include <string> 3. using namespace std; 4. int main(int argc, char *argv[]) 5. { 6. string s; 7. cin>>s; 8. if(s.size()%2==0){ 9. cout<<"No"<<endl;return 0; 10. } 11. for(int i=1;i<s.size();i+=2){ 12. if((s[i]=='#'&&s[i+1]!='#')||(s[i]!='#'&&s[i+1]=='#')){ 13. cout<<"No"<<endl; 14. return 0; 15. } 16. } 17. cout<<"Yes"<<endl; 18. return 0; 19. }