概述
题目:
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
数据:
每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
1 <= a.length, b.length <= 10^4
字符串如果不是 “0” ,就都不含前导零。
用大整数相加的方法!
class Solution {
public:
string addBinary(string a, string b) {
int num1[10005] = {0}, num2[10005] = {0}, sum[10005] = {0};
num1[0] = a.size();
num2[0] = b.size();
for (int i = 0, j = num1[0]; i < num1[0]; i++, j--) {
num1[j] = a[i] - '0';
}
for (int i = 0, j = num2[0]; i < num2[0]; i++, j--) {
num2[j] = b[i] - '0';
}
sum[0] = max(num1[0], num2[0]);
for (int i = 1; i <= sum[0]; i++) {
sum[i] = num1[i] + num2[i];
}
for (int i = 1; i <= sum[0]; i++) {
if (sum[i] >= 2) {
sum[i + 1] += sum[i] / 2;
sum[i] %= 2;
if (i == sum[0]) {
sum[0]++;
}
}
}
string str = "";
for (int i = sum[0]; i > 0; i--) {
str.push_back(sum[i] + '0');
}
return str;
}
};
最后
以上就是苹果店员为你收集整理的leetcode(67):二进制求和的全部内容,希望文章能够帮你解决leetcode(67):二进制求和所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复