LeetCode67. Add Binary
来源:互联网 发布:游戏淘宝网商城 编辑:程序博客网 时间:2024/06/06 00:59
Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
#include<string>#include<cstdlib>#include<iostream>using namespace std;class Solution {public: string addBinary(string a, string b) { int n1=a.length(),n2=b.length(); if(n1==0) return b; if(n2==0) return a; string res=a; char flag='0'; int res_len=n1; if(n1<n2){ res=b; res_len=n2; } int i=n1-1,j=n2-1,k=res_len-1; while((i>-1)&&(j>-1)){ if((a[i]=='1')&&(b[j]=='1')&&(flag=='0')){ flag='1'; res[k]='0'; } else if((a[i]=='1')&&(b[j]=='1')&&(flag=='1')){ flag='1'; res[k]='1'; } else if(((a[i]=='1')||(b[j]=='1'))&&(flag=='0')){ flag='0'; res[k]='1'; } else if(((a[i]=='1')||(b[j]=='1'))&&(flag=='1')){ flag='1'; res[k]='0'; } else{ res[k]=flag; flag='0'; } --i; --j; --k; } while(k>-1){ if(flag=='0'){return res;} else{ if(res[k]=='1'){ res[k]='0'; flag='1'; } else if(res[k]=='0'){ res[k]='1'; flag='0'; } } --k; } if(flag=='1'){ res=flag+res; } return res; }};void main(){ string a="101111",b="10"; Solution So; string res=So.addBinary(a,b); printf("%s \n",res.c_str());}
0 0
- LeetCode67. Add Binary
- leetcode67:Add Binary
- LeetCode67. Add Binary
- LeetCode67. Add Binary
- LeetCode67. Add Binary
- Leetcode67. Add Binary
- LeetCode67 Add Binary
- leetcode67-Add Binary
- LeetCode67——Add Binary
- LeetCode67——Add Binary
- leetcode67---Add Binary(二进制加法)
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- 【死磕Java并发】—–J.U.C之Condition
- 棋子翻转
- 数据库表操作
- OpenCV第一次尝试
- 训练记录
- LeetCode67. Add Binary
- C#项目””是针对”.NETFramework,Version=v4.5.2”但此计算机没有,需要修改为v4.5.1.
- 最大体积
- Nginx配置文件服务管理
- malloc/free 和 new/delete的联系和区别
- AndroidStudio自定义属性xmlns无法识别问题解决in Gradle projects,always use http://schemas.android.com/apk/res-aut
- CentOS7下安装vsftpd
- 常见数据结构小知识点总结
- Kali-WIFI攻防(七)----WPA密码破解之Hashcat