• 刷题LeetCode


    1、给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转  90 度。

    说明:

    你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋 转图像。

    示例 1:

    给定  matrix  =

    [

    [1,2,3],

    [4,5,6],

    [7,8,9]

    ],

    原地旋转输入矩阵,使其变为: [

    [7,4,1],

    [8,5,2],

    [9,6,3] 

    ]

    def rotate(matrix):
        n = len(matrix[0])
        for i in range(n):
            for j in range(i,n):
                matrix[j][i], matrix[i][j] = matrix[i][j],matrix[j][i]
                print(matrix)
        for i in range(n):
            matrix.reverse()
        print(matrix)
        return matrix
    
    
    nums = [
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ]
    print(rotate(nums))

     2、 自定义字符串排序

    字符串 S 和 T 只包含小写字符。在 S 中,所有字符只会出现一次。

    S 已经根据某种规则进行了排序。我们要根据 S 中的字符顺序对 T 进行排序。更具体地说,如果

    S 中 x 在 y 之前出现,那么返回的字符串中 x 也应出现在 y 之前。

     回任意一种符合条件的字符串 T。

    算法:

    1、先遍历字符串T,如果不在S中,直接加入到结果中,不考虑顺序;如果在S中,我们需要记录出现的次数,

    这时考虑用字典来这个结果

    2、定义一个字典:d,用来存T字符串在S 中出现的次数

    3、最后凭借字符串就可以的出结果

    def SortStr(T,S):
        d = dict.fromkeys(S,0)
        res = ''
        for i in T:
            if i in S:
                d[i] += 1
            else:
                res += i
        #print(d)
        for i in S:
            res += i * d[i]
        return res
    
    print(SortStr('cba','abcdeabc'))

    方法二:

    算法:利用enumerate()函数同时列出数据和数据的下标,从数据的小标从0开始;

    def SortStr(S,T):
        d = {letter:index for index ,letter in enumerate(S)}
        #print(d)
        #print(sorted(T, key = lambda x: d.get(x,-1)))
        return ''.join(sorted(T, key = lambda x: d.get(x,-1)))
    
    print(SortStr('cba','cbdadcc'))

     

  • 相关阅读:
    sort color (荷兰国旗)
    先序遍历和后序遍历构建二叉树
    二叉树的遍历
    排序
    内存相关内容
    chrome控制台console方法表
    记一次移动端CSS引发的小Bug
    JavaScript的事件
    浅谈webpack打包原理
    JS模块化进程
  • 原文地址:https://www.cnblogs.com/ff-gaofeng/p/12009979.html
Copyright © 2020-2023  润新知