zoukankan      html  css  js  c++  java
  • leetcode 67. Add Binary

    Given two binary strings, return their sum (also a binary string).

    For example,
    a = "11"
    b = "1"
    Return "100".

    Subscribe to see which companies asked this question

     
    刚开始的想法以为要转换成int,然后计算,最后觉得太麻烦了。
    就直接进行字符类型的加和了,每次都加上进位,但是进位什么时候为1什么时候为0需要设置。char tmp= a[i]+b[j]+r
     
    要注意几点,一个就是两个字符长度不等,要对剩下的字符进行处理,假如还有进位的话,还需要进行加和。
    再一个就是假如所有的字符都处理完了,如果这个时候还有进位,就需要再加一位。
     
    class Solution {
    public:
        string addBinary(string a, string b) {
            string ret="";
            int tmp1;
            char tmp;
            char r='0';
            int i=a.length();
            int j=b.length();
            int c=min(i,j);
            while(c>0){
                i--;j--;
                tmp1=a[i]+b[j]+r-'0'-'0'-'0';
                if(tmp1<2) r='0';
                else r='1';
                if(tmp1%2==0) tmp='0';
                else tmp='1';
                ret=tmp+ret;
                c--;
            }
            while(i>0){
                i--;
                tmp1=a[i]+r-'0'-'0';
                if(tmp1<2) r='0';
                else r='1';
                if(tmp1%2==0) tmp='0';
                else tmp='1';
                ret=tmp+ret;
            }
            while(j>0){
                j--;
                   tmp1=b[j]+r-'0'-'0';
                if(tmp1<2) r='0';
                else r='1';
                if(tmp1%2==0) tmp='0';
                else tmp='1';
                ret=tmp+ret;
                
            }
            if(r=='1') ret=r+ret;
            return ret;
            
        }
    };
  • 相关阅读:
    glibc源码下载
    指令查找工具
    ubuntu下ldd,查看程序动态库信息
    gdb使用记录
    找到返回地址(1)
    vim自动格式化
    android 注入so
    Mac下安装m2crypto 解决找不到openssl头文件的错误
    Mac下android studio卡,居然这么解决了。。。。
    git忽略文件
  • 原文地址:https://www.cnblogs.com/LUO77/p/5067223.html
Copyright © 2011-2022 走看看