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))
字符串 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‘))
原文:https://www.cnblogs.com/ff-gaofeng/p/12009979.html