zoukankan      html  css  js  c++  java
  • 【Leetcode】【Easy】Add Binary

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

    For example,
    a = "11"
    b = "1"
    Return "100".

    解题思路:

    从两个子字符尾部遍历字符;

    每次得到新的字符插入结果字符串的头部;

    解题步骤:

    1、建立返回string、从后向前遍历的idx:idx_a / idx_b、进位量
    2、循环开始,当idx_a或者idx_b任意不为0时,循环继续:
     (1)临时整形sum = 进位值;
     (2)如果idx_a不为0,则加上a[idx_a - 1],idx_a--;同理对idx_b;
     (3)更新进位值和sum,并将sum以字符的形式插入返回string的头部;
    3、如果循环结束时进位值不为0,则在返回string头部添加一位。

    代码:

     1 class Solution {
     2 public:
     3     string addBinary(string a, string b) {
     4         int len_a = a.size();
     5         int len_b = b.size();
     6         int sig_flag = 0;
     7         string ret;
     8         
     9         while (len_a || len_b) {
    10             int curd = sig_flag;
    11             if (len_a) {
    12                 curd += a[len_a - 1] - '0';
    13                 len_a--;
    14             }
    15             
    16             if (len_b) {
    17                 curd += b[len_b - 1] - '0';
    18                 len_b--;
    19             }
    20             
    21             sig_flag = curd / 2;
    22             curd = curd % 2;
    23             ret.insert(0, 1, '0' + curd);
    24         }
    25         
    26         if (sig_flag)
    27           ret.insert(0, 1, '1');
    28           
    29         return ret;
    30     }
    31 };

    附录:

    string操作

    int char string

  • 相关阅读:
    linux下程序运行时间的获取方法,
    网络通信过程(转&自己完善)
    关于找工作&毕设
    linux进程间通信(IPC)几种方式
    asp.net2.0新特性概述 之二
    vs2005新特性
    C#高级特性
    Asp.net2.0新特性 之三
    当前流行的网站设计风格(转贴)
    ASP.NET 2.0 新特性 之一
  • 原文地址:https://www.cnblogs.com/huxiao-tee/p/4141621.html
Copyright © 2011-2022 走看看