首页 > 代码库 > leetcode Add Binary
leetcode Add Binary
题目:给定两个二进制字符串,返回相加的结果,也是二进制表示。
主要就是考查进位如何操作,以及最后如果加完之后进位还是1的话那么不能漏了还要加1.跟之前有做过一题的类似。
因为这题easy就是判断,所以直接贴代码了,感觉好长的样子。
class Solution {public: string addBinary(string a, string b) { if(a.size()==0 || b.size()==0) return a+b; string ans = ""; int up = 0, lena = a.size() - 1, lenb = b.size() - 1; while(lena >= 0 && lenb >= 0) { if (a[lena] == b[lenb] && a[lena] == ‘1‘) { if(up == 1) ans = ‘1‘ + ans; else { ans = ‘0‘ + ans; up=1; } } else if (a[lena] == ‘0‘ && b[lenb] == ‘0‘) { if(up == 1) {ans = ‘1‘ + ans; up = 0;} else ans = ‘0‘ + ans; } else { if(up == 1) {ans = ‘0‘ + ans; up = 1;} else ans = ‘1‘+ ans; } lena--; lenb--; } while(lena>=0) { if(a[lena] == ‘1‘ && up == 1) ans = ‘0‘ + ans; else if (up == 1) { ans = ‘1‘ + ans; up = 0; } else { ans = a[lena] + ans; } lena--; } while(lenb>=0) { if(b[lenb] == ‘1‘ && up == 1) ans = ‘0‘ + ans; else if (up == 1) { ans = ‘1‘ + ans; up = 0; } else { ans = b[lenb] + ans; } lenb--; } if(up == 1) ans = ‘1‘ + ans; return ans; }};
leetcode Add Binary
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。