zoukankan      html  css  js  c++  java
  • 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示)。 

    a = 11

    b = 1

    返回 100

    解题思路:算法上就是从右至左以此按位相加,并且要考虑进位。除此以外这道题还需要注意的就是数字和字符串之间的互相转化以及字符串的按位取的方法charAt();

     1 class Solution {
     2     /**
     3      * @param a a number
     4      * @param b a number
     5      * @return the result
     6      */
     7     public String addBinary(String a, String b) {
     8         // Write your code here
     9         int la = a.length();
    10         int lb = b.length();
    11         int p,q,tmp;
    12         String res = "";
    13         int max = Math.max(  la,lb );
    14         int carry = 0;
    15         for(int i = 0;i < max;  i++ ){
    16             if(i < la){
    17                  p = a.charAt(la-1-i)-'0';
    18             }else{
    19                  p = 0;
    20             }
    21             if(i < lb){
    22                 q = b.charAt(lb-1-i)-'0';
    23             }else{
    24                 q=0;
    25             }
    26             tmp = p + q +  carry;
    27            if(tmp>=2){
    28             tmp=tmp-2;
    29             carry = 1;
    30             }else{
    31             carry =0;
    32             }
    33             res = tmp + res;
    34         }
    35         return (carry==0) ? res : '1'+res;
    36     }
    37 } 
  • 相关阅读:
    11月1号笔试题总结
    10月30笔试题总结
    web前端常用单词
    9月13日·碎碎念
    python 匿名函数
    python 二分法查找
    python 递归
    python内置函数
    python 列表生成式
    python 生成器
  • 原文地址:https://www.cnblogs.com/wangnanabuaa/p/4989919.html
Copyright © 2011-2022 走看看