概述
题目描述: 二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。
案例:
a = "11"
b = "1"
返回 "100"
。
解题思路:
先写个一位加法器,然后依次把b加入a中。
代码:
class Solution {
public:
string addBinary(string a, string b) {
if(a.length() < b.length()) swap(a, b);
for(int i = b.length()-1 ; i >= 0 ; i -- ) {
if(b[i] == '1') f(a, b.length()-i);
}
return a;
}
void f(string& a, int n) {
for(int i = a.length() -n ; i >= 0 ; i --) {
if(a[i] == '0') {
a.replace(i, 1, "1");
return;
}
else {
a.replace(i, 1, "0");
if(i == 0) a.insert(0, "1");
}
}
}
};
最后
以上就是标致信封为你收集整理的LeetCode 67. 二进制求和的全部内容,希望文章能够帮你解决LeetCode 67. 二进制求和所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复