题目考察的知识点:字符串的遍历

题目解答方法的文字分析:先将a,b字符串的大小统一,然后遍历相加。

本题解析所用的编程语言:c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param a string字符串 
     * @param b string字符串 
     * @return string字符串
     */
    string addBinary(string a, string b)
    {
        // write code here
        if (a.size() > b.size())
            swap(a, b);
        while (a.size() != b.size())
            a.insert(a.begin(), '0');

        string s;
        int i = 0, j = 0;
        int flag = '0';
        for (i = a.size() - 1; i >= 0; --i)
        {
            char t = a[i] + b[i] + flag - '0' - '0';
            if (t == '3')
            {
                flag = '1';
                t = '1';
            }
            else if (t == '2')
            {
                flag = '1';
                t = '0';
            }
            else  
                flag = '0';
            s.insert(s.begin(), t);
        }
	  
        if (flag == '1')
            s.insert(s.begin(), '1');
        return s;        
    }
};