83-Add Binary
来源:互联网 发布:邮箱数据出售 编辑:程序博客网 时间:2024/06/18 15:31
-67. Add Binary My Submissions QuestionEditorial Solution
Total Accepted: 85904 Total Submissions: 309911 Difficulty: Easy
Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
题意:二进制加法
class Solution {public: string addBinary(string a, string b) { reverse(a.begin(),a.end()); //逆转 reverse(b.begin(),b.end()); int na = a.size(),nb = b.size(); int n = max(na,nb)+1,min_len=min(na,nb); string res(n,'0'); for(int i=0;i<min_len;++i){ int tmp1 = a[i]+b[i]-'0'-'0';//a,b指定位相加和 int tmp2=res[i]-'0'+tmp1%2; //加之后加上本身位的值 res[i]=(tmp2)%2+'0'; //取余 int tmp=tmp1/2+tmp2/2; //计算下一位的总的进位和 res[i+1]=tmp%2+'0'; //下一位实际值 res[i+2]=tmp/2+'0'; //下一位是否产生金进位 } if(na<nb)a=b; for(int j=min_len;j<n-1;++j){ //较长者继续相加 int sum=res[j]-'0'+a[j]-'0'; res[j]=sum%2+'0'; res[j+1]=sum/2+'0'; } if(res[n-1]=='0')res = res.substr(0,n-1); reverse(res.begin(),res.end()); //为显示正常需要逆转 return res; }};
0 0
- 83-Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- linux生成指定大小的文件
- android:layout_alignleft layout_toleftof区别,详解RelativeLayout布局属性
- SDWebImage源码注解(转载)
- 某单位“高质量软件需求工程”内训圆满结束!
- session 、cookie、token的区别
- 83-Add Binary
- 被释放遇到的Crash message sent to deallocated instance
- awk入门
- Intersection of Two Linked Lists
- java输出对象类总是为内存地址
- Uncaught SyntaxError: Unexpected end of input
- SetUnhandledExceptionFilter让程序优雅的崩溃(转)
- 一位自学Android的经验总结
- Mysql 开启远程访问