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