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

For example,
a = "11"
b = "1"
Return "100".

简单的二进制相加而已,只不过传入的参数是字符串而已。为了方便,先将string  reverse了一下,代码如下:

 class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int len1 = a.length();
int len2 = b.length();
string result;
int flag ,val;
flag = val = ;
int i;
for(i = ; i < len1 && i < len2; ++i){
val = (a[i] - '') + (b[i] - '') + flag;
result.append(, val % + '');
flag = val/;
}
while (i < len1) {
val = a[i] - ''+ flag;
result.append(, val % + '');
flag = val/;
++i;
}
while (i < len2 ){
val = b[i] - ''+ flag;
result.append(, val % + '');
flag = val/;
++i;
}
cout << "flag " << flag << endl;
if(flag != )
result.append(, '');
reverse(result.begin(), result.end());
return result;
}
};

java:以前的循环用的好蠢啊,居然用了三次循环,下面的java稍微有些改进:

 public class Solution {
public String addBinary(String a, String b) {
int len1 = a.length();
int len2 = b.length();
String ret = new String();
int i = 0;
int carry = 0;
a = ReverseStr(a);
b = ReverseStr(b);
while(i < len1 || i < len2 || carry != 0){
int val = ((i<len1)?(a.charAt(i)-'0'):0) + ((i<len2)?(b.charAt(i)-'0'):0) + carry;
carry = 0;
if(val > 1){
carry = val/2;
ret += (char)((val%2) + '0');
}else{
ret += (char)(val + '0');
}
i++;
}
return ReverseStr(ret);
} public String ReverseStr(String str){
return new StringBuffer(str).reverse().toString();
}
}

最新文章

  1. viewgroup用addview添加的view不显示问题
  2. matlab资源
  3. Runtime类
  4. IntelliSense: namespace &quot;osgDB&quot; 没有成员 &quot;BEGIN_BRACKET&quot;
  5. 一个跨域请求的XSS漏洞再续
  6. 为Github项目创建文档
  7. Serv-U FTP版本控制服务器 - 目录规范
  8. Codeforces 915E Physical Education Lessons
  9. ansible_playbook 一键搭建集群架构
  10. [LeetCode] Lemonade Change 买柠檬找零
  11. How to Create a First Shell Script
  12. python 自动获取手机短信验证码
  13. Laravel5 (cli)命令行执行脚本及定时任务
  14. jquery.autocomplete 搜索文字提示
  15. 屏蔽windows快捷键的方法
  16. 使用ansible安装docker以及docker-compose
  17. log4j 产生的日志位置设置和catalina.home、catalina.base
  18. python 第二章 对象与类型
  19. Spring 中Bean的装配方式
  20. TensorFlow目标检测(object_detection)api使用

热门文章

  1. Linux学习笔记(8)文件搜索与帮助
  2. 007-Centos 7.x 安装 Mysql 5.7.13
  3. Python基础-面向对象1
  4. ES6简单入门
  5. matlab出错及改正
  6. network FAQ
  7. maven自动化构建deploy
  8. SpringMVC学习大纲
  9. 杭电1022Train Problem I
  10. 阿里云服务器: centos7 ftp安装