【Leetcode】67. Add Binary
来源:互联网 发布:新蒙迪欧数据 编辑:程序博客网 时间:2024/06/08 12:10
原题:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
public class Solution { public String addBinary(String a, String b) { // String result=""; // int ai=0,bi=0; // for(int i=a.length()-1,FLAG=1;i>=0;i--){ // if(a.charAt(i)=='1'){ // ai=ai+FLAG; // } // FLAG*=2; // } // for(int i=b.length()-1,FLAG=1;i>=0;i--){ // if(a.charAt(i)=='1'){ // bi=bi+FLAG; // } // FLAG*=2; // } // int ci=ai+bi; // while(ci!=0){ // if(ci%2==0){ // result+='0'; // }else{ // result+='1'; // } // ci/=2; // } // return result; int lenLeft = a.length(); int lenRight = b.length(); StringBuilder c = new StringBuilder(); String left;//被加数 String right;//加数 if(lenLeft >= lenRight){ left= a; right = b; }else{ left = b; right = a; lenLeft = b.length(); lenRight = a.length(); } int toAdd = 0;//进位 int l,r,s; int i, j; for(i = lenLeft - 1, j = lenRight - 1; i >= 0 && j >= 0; i--, j--){ l = left.charAt(i) - 48; r = right.charAt(j) - 48; s = l + r + toAdd; if(s < 2){ c.insert(0, String.valueOf(s)); toAdd = 0; }else if(s == 2){ c.insert(0, "0"); toAdd = 1; }else{ c.insert(0, "1"); toAdd = 1; } } for(; i >= 0; i--){ l = left.charAt(i) - 48; s = l + toAdd; if(s!=2){ c.insert(0, String.valueOf(s)); toAdd = 0; }else{ c.insert(0, "0"); toAdd = 1; } } if(toAdd == 1){ c.insert(0, "1"); } return c.toString(); }}
其实感觉直接把2个数转成十进制,加了之后再转回二进制是最简单粗暴的方法。。
阅读全文
0 0
- [LeetCode]67.Add Binary
- LeetCode --- 67. Add Binary
- [Leetcode] 67. Add Binary
- [leetcode] 67.Add Binary
- 【leetcode】67. Add Binary
- [leetcode] 67.Add Binary
- [leetcode] 67. Add Binary
- 【Leetcode】67. Add Binary
- 67. Add Binary LeetCode
- 【LeetCode】67. Add Binary
- leetcode--67. Add Binary
- leetcode 67. Add Binary
- LeetCode 67. Add Binary
- LeetCode *** 67. Add Binary
- leetcode 67. Add Binary
- 【leetcode】67.Add Binary
- LeetCode 67. Add Binary
- LeetCode-67.Add Binary
- 最新wingide6破解方法(支持Linux),亲测有效,支持python3.0
- Storm(一) :基础知识
- C++ 03 —— this
- 触发器
- 离散上级题目5(求全集)
- 【Leetcode】67. Add Binary
- java语言基础(62)——BigDecimal类的使用
- Android 硬件访问服务
- Java设计模式——建造模式(Builder Pattern)
- 离散题目6(求补集)
- 浅析张量分解(Tensor Decomposition)
- 数据结构之双链表
- 导入本地aar依赖
- 上传Android程序到应用市场