zoukankan      html  css  js  c++  java
  • [leetcode]Add Binary @ Python

    原题地址:https://oj.leetcode.com/problems/add-binary/

    题意:

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

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

    解题思路:提供两种实现方式吧。

    代码一:

    class Solution:
        # @param a, a string
        # @param b, a string
        # @return a string
        def addBinary(self, a, b):
            aIndex = len(a)-1; bIndex = len(b)-1
            flag = 0
            s = ''
            while aIndex>=0 and bIndex>=0:
                num = int(a[aIndex])+int(b[bIndex])+flag
                flag = num/2; num %= 2
                s = str(num) + s
                aIndex -= 1; bIndex -= 1
            while aIndex>=0:
                num = int(a[aIndex])+flag
                flag = num/2; num %= 2
                s = str(num) + s
                aIndex -= 1
            while bIndex>=0:
                num = int(b[bIndex])+flag
                flag = num/2; num %= 2
                s = str(num) + s
                bIndex -= 1
            if flag == 1:
                s = '1' + s
            return s

    代码二:

    class Solution:
        # @param a, a string
        # @param b, a string
        # @return a string
        def addBinary(self, a, b):
            length = max(len(a),len(b)) + 1
            sum = ['0' for i in range(length)]
            if len(a) <= len(b):
                a = '0' * ( len(b) - len(a) ) + a
            if len(a) > len(b):
                b = '0' * ( len(a) - len(b) ) + b
            flag = 0
            i = len(a) - 1
            while i >= 0:
                if int(a[i]) + int(b[i]) + flag == 3:
                    sum[i+1] = '1'
                    flag = 1
                elif int(a[i]) + int(b[i]) + flag == 2:
                    sum[i+1] = '0'
                    flag = 1
                elif int(a[i]) + int(b[i]) + flag == 1:
                    sum[i+1] = '1'
                    flag = 0
                else:
                    sum[i+1] = '0'
                    flag = 0
                i = i - 1
            if flag == 1:
                sum[0] = '1'
            if flag == 0:
                sum = sum[1:length]
            sum = ''.join(sum)
            return sum
  • 相关阅读:
    js MD5加密后的字符串
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    归并排序
    C#分解质因数
    C#找出第n到m个素数之间所有之和
    C#打印0到100的素数
    for循环练习
    express总结(一)
    Nodejs总结(一)
    Webpack配置及使用
  • 原文地址:https://www.cnblogs.com/zuoyuan/p/3776018.html
Copyright © 2011-2022 走看看