网站收录的页面被k出来,潮州网站推广教程,餐厅类网站模板,网站建设的软件平台给你两个二进制字符串 a 和 b #xff0c;以二进制字符串的形式返回它们的和。 示例 1#xff1a;
输入:a 11, b 1
输出#xff1a;100
示例 2#xff1a;
输入#xff1a;a 1010, b 1011
输出#… 给你两个二进制字符串 a 和 b 以二进制字符串的形式返回它们的和。 示例 1
输入:a 11, b 1
输出100
示例 2
输入a 1010, b 1011
输出10101 提示
1 a.length, b.length 104a 和 b 仅由字符 0 或 1 组成字符串如果不是 0 就不含前导零 代码
class Solution {
public:string addBinary(string a, string b) {string res;int i a.size()-1, j b.size()-1;int jin 0, yu 0;while(i 0 j 0){yu ((a[i]-0) (b[j]-0) jin) % 2;if(yu 1) res 1 res;else res 0 res;jin ((a[i]-0) (b[j]-0) jin) / 2;i--;j--;}while(i 0){yu ((a[i]-0) jin) % 2;if(yu 1) res 1 res;else res 0 res;jin ((a[i]-0) jin) / 2;i--;}while(j 0){yu ((b[j]-0) jin) % 2;if(yu 1) res 1 res;else res 0 res;jin ((b[j]-0) jin) / 2;j--;}if(jin 1) res 1 res;return res;}
}; 解题思路 1使用模2加分进行求解进位表示为 jin余数表示为 yu。 2将每个字符串从尾部开始遍历与 jin 相加后模2余数 yu 即加入 res 的头部。 3接着判断较长字符串剩下的字符。 4最后根据进位 jin 再做一次判断。