zoukankan      html  css  js  c++  java
  • leetcode每日刷题计划-简单篇day14

    隔了好久好久好久好久开始做题~要坚持下去鸭!

    Num 67 二进制求和 以后不贴英文名字了

    class Solution {
    public:
        string addBinary(string a, string b) {
            int lena=a.length();
            int lenb=b.length();
            string c;
            int ans[1000];
            char ansc[1000];
            memset(ans,0,sizeof(ans));
            memset(ansc,0,sizeof(ansc));
            for(int i=0;i<=min(lena,lenb)-1;i++)
            {
                ans[i]=ans[i]+(int)(a[lena-1-i]-48)+(int)(b[lenb-1-i]-48);
                ans[i+1]=ans[i]/2;
                ans[i]%=2;
            }
            if(lena>lenb)
            {
                for(int i=lenb;i<lena;i++)
                {
                    ans[i]=ans[i]+(int)(a[lena-1-i]-48);
                    ans[i+1]=ans[i]/2;
                    ans[i]%=2;
                }
            }
            else if(lenb>lena)
            {
                for(int i=lena;i<lenb;i++)
                {
                    ans[i]=ans[i]+(int)(b[lenb-1-i]-48);
                    ans[i+1]=ans[i]/2;
                    ans[i]%=2;
                }
            }
            if(ans[max(lena,lenb)]==0)
            {
                for(int i=0;i<max(lena,lenb);i++)
                    ansc[i]=ans[max(lena,lenb)-i-1]+48;
            }
            else
                for(int i=0;i<=max(lena,lenb);i++)
                ansc[i]=ans[max(lena,lenb)-i]+48;
            c=ansc;
            return c;
        }
    };
    View Code

    很简单,注意一下最后如果有0的话需要删掉

    估计可以优化代码,基本一致的代码来回写了两次,先码回头改

    Num 101 对称二叉树

    刚开始的时候直接在isSymmetric里面迭代,这样的判断是左右左右完全一样的,不是对称的

    只要稍加修改代码就行

    另外注意

    判断isMirror(root,root)而不使用左右孩子,因为在输入一个空树的时候会报错访问null的左右

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        bool isSymmetric(TreeNode* root) {
            return isMirror(root,root);
        }
        bool isMirror(TreeNode *t1,TreeNode*t2)
        {
            if(t1==NULL && t2==NULL) return true;
            if(t1==NULL||t2==NULL) return false;
            return (t1->val==t2->val && isMirror(t1->right,t2->left) && isMirror(t1->left,t2->right));
        }
    };
    View Code
    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    当前日志损坏解决一例
    Oracle 1204 RAC failover 测试 (一)
    Logical standby跳过个别SQL不Apply的测试
    Data guard 又出问题了
    CPIO无反应
    回答棉花糖先生关于我说的DB自动增加Index的问题
    SSD硬盘,先不要用在Server上
    ORA00304: requested INSTANCE_NUMBER is busy,终于解决
    .Net运行时的相互关系
    CSS布局探密04
  • 原文地址:https://www.cnblogs.com/tingxilin/p/11128370.html
Copyright © 2011-2022 走看看