天天看點

Leetcode 67: Add Binary

//字元串的輸入可能會是比較大的數組,需要用字元串逐位相加
           
class Solution {
public:
    string addBinary(string a, string b) {
	string result = "";
	int max_length = a.length() > b.length() ? a.length() : b.length();
	int min_length = a.length() < b.length() ? a.length() : b.length();
	int index;
	char temp = '0';
	if (a.length() > b.length())
		for (int i = 0; i<max_length - min_length; i++)
			b = '0' + b;
	else if (a.length() < b.length())
		for (int i = 0; i<max_length - min_length; i++)
			a = '0' + a;

	for (index = 1; index <= max_length; index++)
	{
		cout << a[a.length() - index] << ' ' << b[b.length() - index] << endl;
		if (a[a.length() - index] == b[b.length() - index] && b[b.length() - index] == '1')
		{
			if (temp == '1')
				result = '1' + result;
			else
				result = '0' + result;
			temp = '1';
		}
		else if (a[a.length() - index] == b[b.length() - index] && b[b.length() - index] == '0')
		{
			if (temp == '1')
				result = '1' + result;
			else
				result = '0' + result;
			temp = '0';
		}
		else
		{
			if (temp == '1')
				result = '0' + result;
			else
				result = '1' + result;
		}
	}
	if (temp == '1')
		result = '1' + result;
	return result;
    }
};