高级农民
 
- 积分
- 3667
- 学分
- 个
- 大米
- 升
- 人参
- 枚
- 水井
- 尺
- 小麦
- 颗
- 萝卜
- 根
- 小米
- 粒
- UID
- 157635
- 注册时间
- 2015-3-15
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 好友
- 收听
- 听众
- 日志
- 相册
- 帖子
- 主题
- 分享
- 精华
|
写了个代码,准备去睡,没时间测试。大家看看。
package facebook;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
import java.util.LinkedList;
import java.util.Queue;
public class add_k_binary_numbers {
public static String addBinary(String[] strs). 鍥磋鎴戜滑@1point 3 acres
{
if(strs.length==0||strs==null) return "";
StringBuilder sb = new StringBuilder();
Queue<String> q = new LinkedList<>();
for(String str: strs). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
{
if(str.length()>0)
{ 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
q.add(str);
}-google 1point3acres
}
int sum =0;
while(!q.isEmpty()). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
{.鏈枃鍘熷垱鑷1point3acres璁哄潧
int size = q.size();
for(int i =0; i < size;i++)
{
String temp = q.poll();
char c = temp.charAt(temp.length()-1);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
if(temp.length()>1)
{
q.add(temp.substring(0, temp.length()-1));
}
sum+=(c-'0'); .鏈枃鍘熷垱鑷1point3acres璁哄潧
}
sb.append(sum%2);
sum=sum/2;
}. visit 1point3acres.com for more.
while(sum!=0)
{
sb.append(sum%2);
sum=sum/2;
}
return sb.reverse().toString();
}
public static void main(String[] args)
{
String[] test1 = {"11110",
"11000",. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
"11001"};
System.out.println(addBinary(test1));
. 1point3acres.com/bbs String[] test2 = {"1111",. from: 1point3acres.com/bbs
"1000",
"111111"};
. 1point3acres.com/bbs
System.out.println(addBinary(test2));
String[] test3 = {"11111100111",
"1",
"100111001",
"111",
"1"};
System.out.println(addBinary(test3));
}
}[/code]. more info on 1point3acres.com
-google 1point3acres
补充内容 (2016-10-21 16:30):
time complexity应该是m*n, n是string 个数, m是每个词的平均长度。 |
|