zoukankan      html  css  js  c++  java
  • python_day_3:20180718

    832. 翻转图像
    给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。
    水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。
    反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。
    思路:获得的数据结构是两层嵌套的数字列表,对其中第二层反转+逆序。思路是先写个反转+逆序的函数,再在遍历老列表的时候调用它,创造出需要的子表元素,append进空白列表里,最后return新建的空白列表即可。这里的反转操作,本来也可以用if then语句实现,不过考虑到数据结构简单,我用的是abs(item-1)来实现的0和1的互换。
    解答:
    class Solution(object):
        def flipAndInvertImage(self, A):
            """
            :type A: List[List[int]]
            :rtype: List[List[int]]
            """
            result=[]
            for i in A:
                result.append(self.turn(i))
            return result
        def turn(self,alist):
            result=[]
            for i in range(len(alist)):
                result.append(abs(int(alist[-i-1])-1))
            return result
    657. 判断路线成圈
    初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。
    移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。
    思路:首先转化为二进制数,把多余的'ob'用replace去掉,然后把比较短的那个二进制数,用'0'补齐,让两个数长度一样,然后遍历比较即可。
    解答:
    class Solution(object):
        def judgeCircle(self, moves):
            """
            :type moves: str
            :rtype: bool
            """
            num_r=moves.count('R')
            num_l=moves.count('L')
            num_u=moves.count('U')
            num_d=moves.count('D')
            return num_r==num_l and num_u==num_d
    461. 汉明距离
    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
    给出两个整数 x 和 y,计算它们之间的汉明距离。
    注意:
    0 ≤ x, y < 231.
    思路:首先转化为二进制数,把多余的'ob'用replace去掉,然后把比较短的那个二进制数,用'0'补齐,让两个数长度一样,然后遍历比较即可。
    解答:
    class Solution(object):
        def hammingDistance(self, x, y):
            """
            :type x: int
            :type y: int
            :rtype: int
            """
            binstrx=str(bin(x)).replace('0b','')
            binstry=str(bin(y)).replace('0b','')
            if len(binstrx)>len(binstry):
                binmin,binmax=binstry,binstrx
            else:
                binmin,binmax=binstrx,binstry
            diff=0
            binmin="0"*(len(binmax)-len(binmin))+binmin
            for i in range(len(binmax)):
                if binmin[i]!=binmax[i]:
                    diff+=1
            
            return diff
  • 相关阅读:
    初涉SQL Server性能问题(2/4):列出等待资源的会话
    初涉SQL Server性能问题(1/4):服务器概况
    分享
    React Native 自定义radio 单选or多选
    css之定位
    小小小小小小之新闻案例
    paddingmargin的属性与连写
    css标准流和浮动
    css 伪类
    css元素的显示方式
  • 原文地址:https://www.cnblogs.com/codeinpy/p/9329205.html
Copyright © 2011-2022 走看看