zoukankan      html  css  js  c++  java
  • Add Binary

    package cn.edu.xidian.sselab;
    /**
     * title:Add Binary
     * content:
     *  Given two binary strings, return their sum (also a binary string).
     *  For example;
     *  a = "11"
     *  b = "1"
     *  Return "100".
     */
    public class AddBinary {

        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println(AddBinary.addBinary("11111000", "10010001"));
        }
        
        //自己做的,一次提交成功,第一次上来一次提交成功
        //这个题的思路主要是针对AddTwoNumbers受到的启发,然后用了一个while循环解决了问题,用StringBuffer来进行逆向存储,
        //最后调用他的reverse方法,反向得到结果
        public static String addBinary(String a, String b){
            int sum = 0;
            int len1 = a.length();
            int len2 = b.length();
            int len = Math.max(len1, len2) + 1;
            StringBuffer sb = new StringBuffer();
            int i = len1 -1;
            int j = len2 - 1;
            int k = len - 1;
            while(i >= 0 || j >= 0){
                sum /= 2;
                if(i >= 0){
                    sum += a.charAt(i) - '0';
                    i--;
                }
                if(j >= 0){
                    sum += b.charAt(j) - '0';
                    j--;
                }
                sb.append(sum % 2);
                k--;
            }
            if(sum / 2 == 1){
                sb.append(1);
            }
            return sb.reverse().toString();
        }

    }

  • 相关阅读:
    如何自我介绍可以吸引面试官?
    测试用例有多重要?
    文档测试的要点是什么?
    android应用性能优化技法
    android中的ems的真正含义
    android studio的java代码中,提取普通字符串为常量
    Android配置启动页
    C/C++函数未运行,且显示Process returned -1073741571 (0xC00000FD)
    vue的组件及其使用方法
    Vue关闭ESLint
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/4937548.html
Copyright © 2011-2022 走看看