leetcode67.AddBinary

来源:互联网 发布:数据分析相关书籍 编辑:程序博客网 时间:2024/06/15 15:43
Given two binary strings, return their sum (also a binary string).

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

解题思路:其实是求二进制的加法,不过用字符串来进行表示。与数据结构中两个链表的合并的算法有些类似。

代码如下:

class Solution {public:    string addBinary(string a, string b)     {    int flag=0;    int indexa=a.size()-1;    int indexb=b.size()-1;    string c;    while(indexa >=0 && indexb >= 0)    {    int num=(a[indexa]-'0')+(b[indexb]-'0')+flag;    flag=num/2;    num=num%2;    c = (char)(num + '0') + c;    indexa--;    indexb--;    }    while(indexa>=0)    {    int num=(a[indexa]-'0')+flag;    flag=num/2;    num=num%2;    c=(char)(num + '0') + c;    indexa--;    }    while(indexb>=0)    {    int num=(b[indexb]-'0')+flag;    flag=num/2;    num=num%2;    c=(char)(num +'0')+c;    indexb--;    }    if(flag>0)    {    c=char(flag+'0')+c;    }    return c;            }};


0 0