zoukankan      html  css  js  c++  java
  • LeetCode刷题笔录Add Binary

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

    For example,
    a = "11"
    b = "1"

    Return "100".


    详细一位一位地加即可了,考虑进位的问题。还有最后记得把生成的string反过来再返回,由于我们是从最低位開始加的。

    public class Solution {
        public String addBinary(String a, String b) {
            if(a == null || a.length() == 0)
                return b;
            if(b == null || b.length() == 0)
                return a;
            
            StringBuilder res = new StringBuilder();
            
            int i = a.length() - 1;
            int j = b.length() - 1;
            int digit;
            int carry = 0;
            
            while(i >= 0 && j >= 0){
                digit = (int)(a.charAt(i) - '0' + b.charAt(j) - '0' + carry);
                carry = digit / 2;
                digit %= 2;
                
                res.append(digit);
                i--;
                j--;
            }
            
            while(i >= 0){
                digit = (int)(a.charAt(i) - '0' + carry);
                carry = digit / 2;
                digit %= 2;
                
                res.append(digit);
                i--;
            }
            
            while(j >= 0){
                digit = (int)(b.charAt(j) - '0' + carry);
                carry = digit / 2;
                digit %= 2;
                
                res.append(digit);
                j--;
            }
            //don't forget to add the final carry(if exists)
            if(carry > 0){
                res.append(carry);
            }
            
            return res.reverse().toString();
        }
    }


  • 相关阅读:
    html5的键盘事件
    阻止滑屏
    JS 复制到黏贴板上
    最新拖动原理
    方法——<37>
    验证——正则<37>
    《高级程序设计》 9 客户端检测
    《高级程序设计》8 BOM
    《高级程序设计》7 函数表达式
    《高级程序设计》6 面向对象的程序设计
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4009770.html
Copyright © 2011-2022 走看看