(java)Add Binary
2015-12-29 09:42
489 查看
Given two binary strings, return their sum (also a binary string).
For example,
a =
b =
Return
思路:就是普通的加法,加入进位就行。注意循环结束的时候,如果进位为1,则在前面加一个1就可
代码如下(已通过leetcode)
public class Solution {
public String addBinary(String a, String b) {
int lengthA=a.length();
int lengthB=b.length();
if(a.length()>b.length()) {
for(int i=0;i<lengthA-lengthB;i++) b='0'+b;
} else for(int i=0;i<lengthB-lengthA;i++) a='0'+a;
int temp=0;
String ans="";
for(int i=a.length()-1;i>=0;i--) {
if((a.charAt(i)-'0')+(b.charAt(i)-'0')+temp>1) {
ans=(a.charAt(i)-'0')+(b.charAt(i)-'0')+temp-2+ans;
temp=1;
} else {
ans=(a.charAt(i)-'0')+(b.charAt(i)-'0')+temp+ans;
temp=0;
}
}
if(temp==1) ans=temp+ans;
return ans;
}
}
For example,
a =
"11"
b =
"1"
Return
"100".
思路:就是普通的加法,加入进位就行。注意循环结束的时候,如果进位为1,则在前面加一个1就可
代码如下(已通过leetcode)
public class Solution {
public String addBinary(String a, String b) {
int lengthA=a.length();
int lengthB=b.length();
if(a.length()>b.length()) {
for(int i=0;i<lengthA-lengthB;i++) b='0'+b;
} else for(int i=0;i<lengthB-lengthA;i++) a='0'+a;
int temp=0;
String ans="";
for(int i=a.length()-1;i>=0;i--) {
if((a.charAt(i)-'0')+(b.charAt(i)-'0')+temp>1) {
ans=(a.charAt(i)-'0')+(b.charAt(i)-'0')+temp-2+ans;
temp=1;
} else {
ans=(a.charAt(i)-'0')+(b.charAt(i)-'0')+temp+ans;
temp=0;
}
}
if(temp==1) ans=temp+ans;
return ans;
}
}
相关文章推荐
- java--equal同==的区别
- java--final关键字的作用
- java---成员变量
- Java基础学习总结(11)——重载与重写
- Java基础学习总结(11)——重载与重写
- Java基础学习总结(11)——重载与重写
- (java)Bulls and Cows
- (java)Count and Say
- Spring整合mybatis
- (java)Remove Linked List Elements
- (java)Word Pattern
- RXJAVA操作符
- Eclipse构建Maven项目
- Eclipse、MyEclipse使用git插件(egit)
- spring中freemarker自定义标签详解
- 在Java的JDBC使用中设置事务回滚的保存点的方法
- [javase学习笔记]-7.9 成员变量与静态变量的区别
- java项目部署总结(一)JDK 、git、maven、ssh等安装与配置
- Java2.1
- 多线程1.50的特性