zoukankan      html  css  js  c++  java
  • LeetCode 67. Add Binary

    Given two binary strings, return their sum (also a binary string).

    For example,
    a = "11"
    b = "1"
    Return "100".


    【题目分析】

    这个题目很简短,要做的事情也比较简单,即:把两个用字符串表示的二进制数相加,结果同样以字符串的形式返回。


    【思路】

    我们的思路就是从每个字符串的最后取一个数字,依次相加,并且向前进位。

    需要注意的一点就是当前取得的字符串不能直接与结果相加,而是要减去48或者'0',因为'0'的ASCII码是48。至于java中的编码方式,其实一直没有弄太明白,最近也在看相关的内容,希望把这一部分掌握。


    【java代码】

     1 public class Solution {
     2     public String addBinary(String a, String b) {
     3         int alen = a.length() - 1;
     4         int blen = b.length() - 1;
     5         StringBuilder result = new StringBuilder();
     6         int flag = 0;
     7         
     8         while(alen >= 0 || blen >= 0) {
     9             int sum = flag;
    10             if(alen >= 0) sum += a.charAt(alen--) - 48;
    11             if(blen >= 0) sum += b.charAt(blen--) - 48;
    12             result.append(sum % 2);
    13             flag = sum / 2;
    14         }
    15         if(flag != 0) result.append(1);
    16         return result.reverse().toString();
    17     }
    18 }
     
  • 相关阅读:
    20181126-java-面试知识-收集
    redis学习
    ThoughtWorks.QRCode类库
    Microsoft Enterprise Library
    DocX插件
    Aspose 插件
    工厂示例
    面向对象
    WebSocket 是什么原理?为什么可以实现持久连接?
    label标签的作用
  • 原文地址:https://www.cnblogs.com/liujinhong/p/5995741.html
Copyright © 2011-2022 走看看