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
原文地址:https://www.cnblogs.com/codeinpy/p/9329205.html