前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LeetCode】67. Add Binary

【LeetCode】67. Add Binary

作者头像
韩旭051
发布2019-12-03 15:33:20
3140
发布2019-12-03 15:33:20
举报
文章被收录于专栏:刷题笔记刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/103187052

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

The input strings are both non-empty and contains only characters 1 or 0.

Example 1:

Input: a = "11", b = "1" Output: "100" Example 2:

Input: a = "1010", b = "1011" Output: "10101" 在真实的面试中遇到过这道题?

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-binary 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

大佬的解法真是把我这种普通人虐的体无完肤核心代码,

每位加到C,然后&1,留下最后一个二进制位,加上,

C再右移一位,最后直接输出,

又快又简洁!!!!!

class Solution {
public:
    string addBinary(string a, string b) {
        string s;
		s.reserve(a.size() + b.size());
		int c = 0, i = a.size() - 1, j = b.size() - 1;
		while(i >= 0 || j >= 0 || c == 1)
		{
			c += i >= 0 ? a[i--] - '0' : 0;
			c += j >= 0 ? b[j--] - '0' : 0;
			s.push_back((c & 1) + '0');
			c >>= 1;
		}
		reverse(s.begin(), s.end());
		return s;
    }
};

大于等于,啥的需要自己写的时候注意下。

预存是s.reserve(大小);

翻转是reverse(s.begin(),s.end());

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大佬的解法真是把我这种普通人虐的体无完肤核心代码,
  • 每位加到C,然后&1,留下最后一个二进制位,加上,
  • C再右移一位,最后直接输出,
  • 又快又简洁!!!!!
  • 大于等于,啥的需要自己写的时候注意下。
  • 预存是s.reserve(大小);
  • 翻转是reverse(s.begin(),s.end());
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档