您好,登錄后才能下訂單哦!
67. Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
思路:
1.將兩個字符串按數組相加得到新數組。
2.將新數組轉換成結果。
代碼如下:
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。