首页 > 代码库 > Leetcode:Add Binary 二进制相加
Leetcode:Add Binary 二进制相加
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
思路同十进制的大数相加。代码如下:
class Solution { public: string addBinary(string a, string b) { size_t len_a = a.length(); size_t len_b = b.length(); if(len_a == 0) return b; if(len_b == 0) return a; int i = len_a - 1; int j = len_b - 1; int increase = 0; stack<int> result_stk; while(i >= 0 && j >= 0) { int s = a[i] - ‘0‘ + b[j] - ‘0‘ + increase; increase = s / 2; int sum = s % 2; result_stk.push(sum); i--; j--; } while(i >= 0) { int s = a[i] - ‘0‘ + increase; increase = s / 2; int sum = s % 2; result_stk.push(sum); i--; } while(j >= 0) { int s = b[j] - ‘0‘ + increase; increase = s / 2; int sum = s % 2; result_stk.push(sum); j--; } if(increase == 1) result_stk.push(1); string result; while(!result_stk.empty()) { result += result_stk.top() + ‘0‘; result_stk.pop(); } return result; } };
Leetcode:Add Binary 二进制相加
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。