leetCode67.AddBinary字符串

67. Add Binary

慶城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)建站從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

Given two binary strings, return their sum (also a binary string).

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

思路:

1.將兩個字符串按數(shù)組相加得到新數(shù)組。

2.將新數(shù)組轉(zhuǎn)換成結(jié)果。

代碼如下:

class Solution {
public:
    string addBinary(string a, string b) {
    	int sizeA = a.size();
    	int sizeB = b.size();
    	int carry = 0;
    	vector<int> result;
    	string resultStr;
    	if (sizeA < sizeB)
    		return addBinary(b, a);
    
    	for (int i = 0; i < sizeB; i++)
    	{
    		int cur = (a[sizeA - i - 1] - '0') + (b[sizeB - i - 1] - '0') + carry;
    		if (cur < 2)
    		{
    			result.push_back(cur);
    			carry = 0;
    		}
    		else if (cur == 2)
    		{
    			result.push_back(0);
    			carry = 1;
    		}
    		else if (cur == 3)
    		{
    			result.push_back(1);
    			carry = 1;
    		}
    	}
    
    	for (int j = sizeB; j < sizeA; j++)
    	{
    		int cur = (a[sizeA - j - 1] - '0') + carry;
    		if (cur < 2)
    		{
    			result.push_back((a[sizeA - j - 1] - '0') + carry);
    			carry = 0;
    		}
    		else if (cur == 2)
    		{
    			result.push_back(0);
    			carry = 1;
    		}
    		else if (cur == 3)
    		{
    			result.push_back(1);
    			carry = 1;
    		}
    	}
    
    	if (carry == 2)
    	{
    		result.push_back(0);
    		result.push_back(1);
    	}
    	else if ( carry == 1)
    	{
    		result.push_back(1);
    	}
    	
    	for (int k = 0; k < result.size(); k++)
    	{
    		if (result[result.size() - 1 - k] == 1)
    		{
    			resultStr.append(1, '1');
    		}
    		else
    		{
    			resultStr.append(1, '0');
    		}
    	}
    	return resultStr;
    }
};

2016-08-10 23:39:26

文章標(biāo)題:leetCode67.AddBinary字符串
當(dāng)前路徑:http://muchs.cn/article22/jpedjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、定制開發(fā)、面包屑導(dǎo)航、服務(wù)器托管、網(wǎng)站制作網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司