标签:string
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
#include<iostream> #include<string> #include<vector> using namespace std; string addBinary(string a, string b) { if (a.empty()||b.empty()) return a.empty()?b:a; int idx_a = a.size()-1,idx_b = b.size()-1; int length = max(idx_a,idx_b)+1; string Result; int add =0; for (;idx_a>=0&&idx_b>=0;--idx_a,--idx_b) { int num = a[idx_a]-'0'+b[idx_b]-'0'+add; add = num/2; num %= 2; Result = static_cast<char>(num+'0')+Result; } while (idx_a>=0) { int num = a[idx_a]-'0'+add; add = num/2; num %= 2; Result = static_cast<char>(num+'0')+Result; idx_a--; } while (idx_b>=0) { int num = b[idx_b]-'0'+add; add = num/2; num %= 2; Result = static_cast<char>(num+'0')+Result; idx_b--; } if (add>0) Result = static_cast<char>(add+'0')+Result; return Result; }
标签:string
原文地址:http://blog.csdn.net/li_chihang/article/details/44774517