赞
踩
转换成十进制数,求和之后再转换成二进制数
class Solution {
public String addBinary(String a, String b) {
return Integer.toBinaryString(
Integer.parseInt(a, 2) + Integer.parseInt(b, 2)
);
}
}
没考虑到一个大于0 一个小于零int tmp = (a[i]-‘0’) + (b[j]-‘0’)
String res = ‘’; error: empty character literal
B站讲解视频 和 力扣题解别人的答案 都用了这种方法,但目前已经超时。暂时还没找到可以执行的方法。
class Solution { public String addBinary(String a, String b) { StringBuffer res = new StringBuffer(); int carry = 0; //进位 int i = a.length() - 1; int j = a.length() - 1; while(i>=0 || j>=0 || carry!=0) { if(i>=0) carry+=a.charAt(i)-'0'; if(j>=0) carry+=b.charAt(j)-'0'; res.insert(0, carry%2); //res = String.valueOf(tmp%2)+res; carry = carry/2; } return res.toString(); } }
字符串长度str.length()
String是使用char数组来存储数据,并且是使用final修饰的,所以String的值一经定义是不可变的
如果想要可变字符,使用StringBuilder(可变字符序列,效率高,线程不安全)、StringBuffer(可变字符序列,效率低,线程安全)
以StringBuffer为例。
public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。