zoukankan      html  css  js  c++  java
  • [leetcode]67. Add Binary 二进制加法

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

    The input strings are both non-empty and contains only characters 1 or 0.

    Example 1:

    Input: a = "11", b = "1"
    Output: "100"

    Example 2:

    Input: a = "1010", b = "1011"
    Output: "10101"

    注意:

    StringBuilder.insert(int offset,  char c) 表示将char放入offset这个偏移量

    Character.forDigit(int digit, int radix) 返回radix进制下,该digit所代表的char

    代码

     1 class Solution {
     2     public String addBinary(String a, String b) {
     3         StringBuilder sb = new StringBuilder(); // new a StringBuilder because it will be easy to append
     4         
     5         char[] arrayA = a.toCharArray();// convert char to array 
     6         char[] arrayB = b.toCharArray();// convert char to array
     7         
     8         int i = a.length()-1; 
     9         int j = b.length()-1; 
    10         int carry = 0; 
    11         
    12         while(i>=0 || j>=0 || carry >0){  
    13             int updateA = i>=0 ? arrayA[i--]-'0':0; 
    14             int updateB = j>=0 ? arrayB[j--]-'0':0; 
    15             int sum = updateA + updateB + carry; 
    16             sb.insert(0, Character.forDigit(sum%2, 10)); // I convert this sum to binary then insert to sb
    17             carry = sum/2; // coz it is binary, carry would be sum/2
    18         } 
    19         return sb.toString();  //  convert StringBuilder to String
    20     }
    21 }
  • 相关阅读:
    dfs手写栈模板
    Remember the Word
    Sockets
    Sanatorium
    Exams
    Cormen — The Best Friend Of a Man
    win 7 普通家庭版 装IIS
    [引]构造文法时表达式中算符优先级的问题
    Chart系列(二):数据绑定
    算法整理篇之:数据结构 | 数组(1)
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9808258.html
Copyright © 2011-2022 走看看