zoukankan      html  css  js  c++  java
  • Leetcode题解——二进制加法

    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.

    //难点:1.如何存放结果呢? 2.string的一个位是字符型还是字符串?string[i] 3.存放结果的result是一个动态数组

    class Solution{
    public:
    string addBinary(string a, string b) {
    if(a.size()==0) return b;
    if(b.size()==0) return a;
    int len1=a.size();
    int len2=b.size();
    int i=len1-1;
    int j=len2-1;
    int sign=0;
    int length=max(len1,len2);//先用一个整型数组来存储结果
    int result[length];//
    while(i>=0&&j>=0){
    if(a[i]==1&&b[j]==1){
    if(sign==1)
    result[length]=1;
    else
    result[length]=0;
    sign=1;//向前进位
    }else if(a[i]==0&&b[j]==0){
    if(sign==1){
    result[length]=1;
    }
    else
    result[length]=0;
    sign=0;
    }else{
    if(sign==1)
    result[length]=0;
    else{
    result[length]=1;
    sign=0;
    }
    }
    i--;
    j--;
    length--;
    }
    //判断第一位是否进位
    string s=nullptr;
    if(sign==1)
    s.append(1,char(result[0]));
    for(int i=1;i<length;i++)
    s.append(1,char(result[i]));
    return s;
    }
    };

  • 相关阅读:
    go并发和并行
    goroutine
    go并发
    wampserver配置问题
    获取字符串的长度
    mysql中事件失效如何解决
    Go语言中Goroutine与线程的区别
    Mosquitto服务器的日志分析
    phpexcel导出数据 出现Formula Error的解决方案
    Centos6.X 手动升级gcc
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/6694946.html
Copyright © 2011-2022 走看看