• leetcode——67. 二进制求和


    简单题

    class Solution:
        def addBinary(self, a: str, b: str) -> str:
            s=0
            a=list(a)
            a=a[::-1]
            for i in range(1,len(a)):
                s+=int(a[i])*2**i
            s+=int(a[0])
            t=0
            b=list(b)
            b=b[::-1]
            for j in range(1,len(b)):
                t+=int(b[j])*2**j
            t+=int(b[0])
            n=s+t
            return bin(n)[2:]
    执行用时 :60 ms, 在所有 python3 提交中击败了36.13%的用户
    内存消耗 :13.7 MB, 在所有 python3 提交中击败了5.24%的用户
     
                                                 ——2019.10.17
     
     

    没有做出来,还有位运算的思想没有去了解。
    官方题解是将字符串翻转,然后进行求解,再将结果翻转,思路很巧妙。
    就是自己没有想出来,还需要再次进行复习。
     
    public String addBinary(String a, String b) {
            StringBuffer ans = new StringBuffer();
    
            int n = Math.max(a.length(), b.length()), carry = 0;
            for (int i = 0; i < n; ++i) {
                carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
                carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
                ans.append((char) (carry % 2 + '0'));
                carry /= 2;
            }
    
            if (carry > 0) {
                ans.append('1');
            }
            ans.reverse();
    
            return ans.toString();
        }

    ——2020.7.7

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    list转datatable c#
    按钮靠右css小结
    IE浏览器打印合格证相关问题
    vue项目插入视频-mp4
    vue项目bug-Couldn’t find preset "es2015"
    Mac打开swf文件
    mac+windows下从git上拉取项目及运行
    echarts.js制作中国地图
    前端数据可视化echarts.js
    vue-router 基本使用
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11695281.html
Copyright © 2020-2023  润新知