zoukankan      html  css  js  c++  java
  • 对称二叉树(tree_c)

    对称二叉树(tree_c)

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1368
    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.

    例:如下图中的二叉树T1是对称的,T2是不对称的。

    二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。

    【输入】

    二叉树用顺序结构给出,若读到#则为空。

    【输出】

    如果二叉树是对称的,输出“Yes”,反之输出“No”。

    【输入样例】

    ABCDE

    【输出样例】

    Yes
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int main()
    {
        string s;
        cin>>s;
        int k=1,i=0,flag=0,j=1,l=s.size()-1;
        while(k*2<=l&&!flag)
        {
            k*=2;
            l-=k;
            for(;j<=i+k;j+=2)
            {
                if(s[j]=='#'&&s[j+1]!='#')flag=1;
                if(s[j]!='#'&&s[j+1]=='#')flag=1;
                
            }
            i=j;
        }
        if((s.size()-j)%2)flag=1;        
        else for(;j<s.size();j+=2)
        {
            if(s[j]=='#'&&s[j+1]!='#')flag=1;
            if(s[j]!='#'&&s[j+1]=='#')flag=1;
        }
        
        if(flag)cout<<"No"<<endl;
        else cout<<"Yes"<<endl;
    }
  • 相关阅读:
    SQL实战(四)
    SQL实战(三)
    SQL实战(二)
    数据库SQL实战(一)
    算法(二)——背包问题
    华为机试(五)
    算法(一)
    华为机试练习(四)
    华为往年机试题目(三)
    T分布(T-Distribution)
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/8017821.html
Copyright © 2011-2022 走看看