zoukankan      html  css  js  c++  java
  • LeetCode 题解之Add Binary

    1、题目描述

    2、题目分析

    使用string 的逆向指针,做二进制加法,注意进位问题就可以。

    3、代码

     1 string addBinary(string a, string b) {
     2        
     3         string::reverse_iterator it_a = a.rbegin() ;
     4         string::reverse_iterator it_b = b.rbegin() ;
     5         
     6         string s;
     7         string s0 = "0";
     8         string s1 = "1";
     9         int up = 0;
    10         while( it_a != a.rend() && it_b != b.rend() ){
    11             if( *it_a - '0'  + *it_b - '0'  + up == 1 ){
    12                 s = s1 + s;
    13                 up = 0;
    14             }else if( *it_a - '0' + *it_b - '0' + up == 0 ){
    15                 s = s0 + s;
    16                 up = 0;
    17             }else if( *it_a - '0' + *it_b - '0' + up == 2 ){
    18                 s = s0 + s;
    19                 up=1;
    20             }else if( *it_a - '0' + *it_b - '0' + up == 3 ){
    21                 s = s1 + s;
    22                 up = 1;
    23             }
    24             ++it_a ;
    25             ++it_b ;
    26         }
    27         
    28         while( it_a != a.rend() ){
    29             if( *it_a - '0' + up ==  0 ){
    30                 s = s0 + s;
    31                 up = 0;
    32             }else if( *it_a - '0' + up == 1){
    33                 s = s1 + s;
    34                 up = 0;
    35             }else{
    36                 s = s0 + s;
    37                 up = 1;
    38             }
    39             ++it_a ;
    40         }
    41         
    42         while( it_b != b.rend() ){
    43             if( *it_b - '0' + up == 0 ){
    44                 s = s0 + s;
    45                 up = 0;
    46             }else if(*it_b - '0' + up == 1){
    47                 s = s1 + s;
    48                 up =0;
    49             }else{
    50                 s = s0 + s;
    51                 up = 1;
    52             }
    53             ++it_b;
    54         }
    55         
    56         if( up == 1 ){
    57             s = s1 + s;
    58         }
    59         
    60         return s;
    61         
    62     }
    pp
  • 相关阅读:
    母版
    扣点计算
    付费推广的投入产出比达到多少才合理?
    关于京东POP和采销双平台选择合作
    学习Swift--枚举的初步认识 --个人备忘 大神勿喷
    前台操作及技巧的一些文档
    ABAP 四舍五入函数
    设置ALV 行颜色
    初学笔记
    模块 BAPI
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/9297722.html
Copyright © 2011-2022 走看看