LeetCode 67. Add Binary
题目描述:
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) {
if(a.length() < b.length()) swap(a, b);
int pa = a.length() - 1, pb = b.length() - 1, jw = 0;
while(pb >= 0){
a[pa] = a[pa] - '0' + b[pb] - '0' + jw + '0';
if(a[pa] >= '2'){
a[pa] = a[pa] % '2' + '0';
jw = 1;
}
else{
jw = 0;
}
pa--, pb--;
}
while(pa >= 0){
a[pa] = a[pa] + jw;
if(a[pa] >= '2'){
a[pa] = a[pa] % '2' + '0';
jw = 1;
}
else{
jw = 0;
}
pa--;
}
if(jw){
a.insert(a.begin(), '1');
}
return a;
}
};