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;
    }
    };

  • 相关阅读:
    Lesson 61-62 Are Relatives Important to You?
    Lesson 59-60 Househusband
    Lesson 57-58 Cosmetic Surgery
    Lesson 55-56 TV Commercials
    Blash
    高维宇宙
    巴卡尔
    完美标号
    小A点菜(luogu 1164)简单DP
    聪明的质监员(qc)
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/6694946.html
Copyright © 2011-2022 走看看