LeetCode67 Add Binary

题目:

Given two binary strings, return their sum (also a binary string). (Easy)

For example,
a = "11"
b = "1"
Return "100".

分析:

思路很简单,就是按位依次相加,处理进位即可,循环条件里面可以写上carry == 1,用一个完整循环解决问题,而不用循环结束后再多加判定。

注意:题目给的是string,注意处理char和int转换。

代码:

 1 class Solution {
 2 public:
 3     string addBinary(string a, string b) {
 4         string result = "";
 5         int i = a.size() - 1, j = b.size() - 1, carry = 0;
 6         while (i >= 0 || j >= 0 || carry == 1) {
 7             int temp = carry;
 8             carry = 0;
 9             if (i >= 0) {
10                 temp += a[i] - '0';
11                 i--;
12             }
13             if (j >= 0) {
14                 temp += b[j] - '0';
15                 j--;
16             }
17             if (temp == 2) {
18                 carry = 1;
19                 temp = 0;
20             }
21             if (temp == 3) {
22                 carry = 1;
23                 temp = 1;
24             }
25             result = char('0' + temp) + result;
26         }
27         return result;
28     }
29 };

 

 

转载于:https://www.cnblogs.com/wangxiaobao/p/5898108.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值