Add Binary
来源:互联网 发布:西交大网络 编辑:程序博客网 时间:2024/06/18 17:57
题目
Given two binary strings, return their sum (also a binary string).
For example,
a ="11"
b ="1"
Return"100"
.
方法
从后往前,每个字符进行判断。
public String addBinary(String a, String b) { if (a == null || b == null) { return null; } if (a.equals("")) { return b; } if (b.equals("")) { return a; } int lenA = a.length(); int lenB = b.length(); int i = lenA - 1; int j = lenB - 1; boolean flag = false; StringBuilder builder = new StringBuilder(); while (i >= 0 && j >= 0) { char curA = a.charAt(i); char curB = b.charAt(j); if (flag) { if (curA == '0' && curB == '0') { builder.append(1); flag = false; } if (curA == '0' && curB == '1') { builder.append(0); flag = true; } if (curA == '1' && curB == '0') { builder.append(0); flag = true; } if (curA == '1' && curB == '1') { builder.append(1); flag = true; } } else { if (curA == '0' && curB == '0') { builder.append(0); flag = false; } if (curA == '0' && curB == '1') { builder.append(1); flag = false; } if (curA == '1' && curB == '0') { builder.append(1); flag = false; } if (curA == '1' && curB == '1') { builder.append(0); flag = true; } } i--; j--; } while (i >= 0) { char curA = a.charAt(i); if (flag) { if (curA == '0') { builder.append(1); flag = false; } else { builder.append(0); flag = true; } } else { builder.append(curA); } i--; } while (j >= 0) { char curB = b.charAt(j); if (flag) { if (curB == '0') { builder.append(1); flag = false; } else { builder.append(0); flag = true; } } else { builder.append(curB); } j--; } if (flag) { builder.append(1); } return builder.reverse().toString(); }
0 0
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Cocos2d-x学习笔记(15)(Action动作)
- 新版Android模拟器的使用
- 第五周作业——有向图邻接表表示及反向图构造
- 3个运算符优先级:. 大于->大于*
- 华为手机的U盘存储通过OTG线连到我们的Android手机上
- Add Binary
- ORACLE SAMPLE block
- linux笔记:管道和重定向机制
- (向量空间)概念和法则的人为定义 I
- 编程基础知识——java类加载
- poj dp总结
- Java 调用 C/C++ 之 JNA 系列实战篇 —— 输出wchar_t** (四)
- Androi CheckBox
- 第十六周自由练习项目——acm复数类--重载运算符+,-,*,/