首页 > 代码库 > Add Binary
Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
分析:该题需要注意的地方:1)两个string的长度可能不同 2)近位
借鉴leetcode-cpp.pdf的做法,先将两个string reverse,这样可以很方便的处理低位对齐的问题。代码如下:
1 class Solution { 2 public: 3 string addBinary(string a, string b) { 4 string res; 5 size_t n = a.size()>b.size()?a.size():b.size(); 6 reverse(a.begin(),a.end()); 7 reverse(b.begin(),b.end()); 8 int carry = 0; 9 for(int i = 0; i < n; i++){10 int ai = i<a.size()?a[i]-‘0‘:0;11 int bi = i<b.size()?b[i]-‘0‘:0;12 int val = (ai+bi+carry)%2;13 carry = (ai+bi+carry)/2;14 res.insert(res.begin(),val+‘0‘);15 }16 if(carry == 1)17 res.insert(res.begin(),‘1‘);18 return res;19 }20 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。