[LeetCode] 67. 二进制求和(简单模拟二进制求和)
发布日期:2021-06-29 21:41:14
浏览次数:2
分类:技术文章
本文共 1319 字,大约阅读时间需要 4 分钟。
题目:
给定两个二进制字符串,返回他们的和(用二进制表示)。
样例1:
a = 11
b = 1
返回 100
样例2:
输入: a = "1010", b = "1011"
输出: "10101"
C++代码:
class Solution {public: string addBinary(string a, string b) { int len1=a.length(),len2=b.length(); if(len1=0){ //模拟加法 add+=a[len1]-'0'+b[len2]-'0'; ans+=add%2+'0'; add>>=1; len1--,len2--; } while(len1>=0){ //对齐加完之后还剩下的也需要加上 add+=a[len1]-'0'; ans+=add%2+'0'; add>>=1; len1--; } if(add){ //最后如果还有进位 ans+=add+'0'; } string newans=""; for(int i=ans.length()-1;i>=0;i--) newans+=ans[i]; return newans; }};
Java代码:
class Solution { public String addBinary(String a, String b) { if(a.equals("0")) return b; if(b.equals("0")) return a; String temp=""; if(a.length()=0){ add+=a.charAt(lena)-'0'+b.charAt(lenb)-'0'; ans.append(add%2+""); add>>=1; lena=lena-1; lenb=lenb-1; } while(lena>=0){ add+=a.charAt(lena)-'0'; ans.append(add%2+""); add>>=1; lena-=1; } if(add==1){ ans.append(add+""); } ans.reverse(); return ans.toString(); }}
转载地址:https://dh-butterfly.blog.csdn.net/article/details/80874715 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月17日 18时06分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
android画布局部矩形擦除
2019-04-30
ADB命令与调试文件安装拷贝
2019-04-30
Android日志创建应用与添加位置服务
2019-04-30
Android MP3播放(web)
2019-04-30
Android之资源使用
2019-04-30
专利挖掘文章研读笔记
2019-04-30
Java DataType数据类型
2019-04-30
路似长非长,似短非短,只是时常我们还迷茫在大海之中
2019-04-30
Android设置字体颜色
2019-04-30
Qt构建静态库动态库
2019-04-30
Andoid Style资源应用
2019-04-30
RecyclerView(ListView) 画网格
2019-04-30
解决QT中中文字符乱码问题
2019-04-30
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crt1.o: In function `_start': (.text+0x18): undefined
2019-04-30
Redhat5.6下mysql的安装和使用
2019-04-30
libBasicUsageEnvironment.so.0: cannot restore segment prot after reloc: Permission denied
2019-04-30
常用awk命令
2019-04-30
Qt使用一张图片上的众多icon作为控件图标
2019-04-30
QT拖拽功能简介
2019-04-30
Qt拖放
2019-04-30