[leetcode] Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
给定两个二进制的字符串,返回他们的和。
对于a,b两个二进制字符串,首先通过交换使a的长度小于b的长度。然后在a前面补0令ab的长度相同。然后从最后一位开始往前逐步使用加法规则相加,需要注意的是carry表示前一位向这一位的进位,如果在第k位时,a[i]+b[i]+carry <= 1,则需要把carry清零。
最后判断carry是否为零,若不为零则在前面添加一个carry。
代码如下:
1 class Solution { 2 public: 3 string addBinary(string a, string b) { 4 5 6 if( a.length() > b.length() ) 7 { 8 string tmp = a; 9 a = b; 10 b = tmp; 11 } 12 13 string zero = "0"; 14 15 while( a.length() != b.length() ) 16 { 17 a = zero + a; 18 } 19 20 21 int len = b.length(); 22 int carry = 0; 23 24 string res = ""; 25 for( int i = 1 ; i <= len ; i++ ) 26 { 27 int cur = 0; 28 cur = a[len-i] - '0' + b[len-i] - '0' + carry; 29 if( cur > 1 ) 30 { 31 cur -= 2; 32 carry = 1; 33 } 34 else 35 { 36 carry = 0; 37 } 38 char tmp = cur + '0'; 39 res = tmp + res; 40 } 41 42 if( carry != 0 ) 43 { 44 char tmp = carry + '0'; 45 res = tmp + res; 46 } 47 48 return res; 49 } 50 };
转载于:https://www.cnblogs.com/jostree/p/3695130.html
[leetcode] Add Binary相关推荐
- LeetCode: Add Binary 解题报告
Add Binary Given two binary strings, return their sum (also a binary string). For example, a = " ...
- LeetCode - Add Binary
题目: Given two binary strings, return their sum (also a binary string). For example, a = "11&quo ...
- LeetCode Add Binary
Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...
- [LeetCode]Add Binary
Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...
- LeetCode:Add Binary
题目链接 Given two binary strings, return their sum (also a binary string). For example, a = "11&qu ...
- LeetCode Add Binary(二进制加法)
思路:大整数加法 代码如下: public class Solution {public String addBinary(String a, String b){StringBuilder sb = ...
- LeetCode刷题记录4——67. Add Binary(easy)
LeetCode刷题记录4--67. Add Binary(easy) 目录 LeetCode刷题记录4--67. Add Binary(easy) 题目 语言 思路 后记 题目 今天这题是与字符串相 ...
- leetcode 67 Add Binary
Add Binary Total Accepted: 46815 Total Submissions: 189215 My Submissions Given two binary strings, ...
- java两个二进制数求和,Leetcode 67:Add Binary(二进制求和)
Leetcode 67:Add Binary(二进制求和) (python.java) Given two binary strings, return their sum (also a binar ...
最新文章
- Linux安全基础:shell及一些基础命令
- python如何询问_学习Python问?
- vue3与vue2的详细区别
- oracle 11g(二)安装过程
- C#LeetCode刷题-剑指Offer
- Siri为什么越来越蠢?
- CrackMe022
- java数独最快解,Java解数独--世界最难数独
- Ricequant 平台入门--第一个量化交易策略
- python中flag=1什么意思_001_flag包详解
- 阿尔伯塔大学知名计算机工程学教授,阿尔伯塔大学计算机工程硕士解析
- ZLL的每周一更(maybe)--浏览器的运行机制
- 一、《图解HTTP》了解Web和网络基础
- 廖雪峰python#统计学生人数
- Docker进入容器报错
- 解决ios系统下微信页面无法播放背景音乐的问题
- linux查看某个端口的流量_linux中查看网卡流量六种方法
- Race Condition(资源竞争) 解决方案总结
- OpenGL ES之变换反馈Transform Feedback的使用流程
- springboot Elasticsearch 配置 Demo
热门文章
- redis -cli command not found_记一次 Linux 服务器 redis 漏洞分析
- boa服务器如何运行cgi,嵌入式WEB服务器BOA+CGI.ppt
- autocad软件提供的哪些功能可以提高设计效率?_节省80%制图时间:AutoCAD如何有效“手脑”结合,释放创作潜能?...
- ora03135连接失去联系 进程id 0_进程组、会话、控制终端概念,如何创建守护进程?...
- linux mrtg 进程名称,Linux上的MRTG流量监控中心
- 有哪些事,是你做了领导后才明白的?
- Android中的动画
- Round-Robin负载均衡算法及其实现原理
- Requests 2.18.1文档
- AI自动P图:maskrcnn+inpaintting消除并修复指定区域图像