Una matriz (matriz bidimensional) impresa en diagonal hacia la derecha. (Búsqueda, he encontrado que Estados Unidos parece ser una entrevista de grupo requiere un título medio destrozado horas)
Ejemplo:
la Entrada:
[
[1,2,3,4],
[5,1,2,3],
[9,5, 1,2]
]
la salida:
. [[4],
. [3 ,. 3],
[2, 2, 2],
. [1 ,. 1 ,. 1],
. [5 ,. 5],
[9].]
clase de soluciones (): DEF print_matix (Ser, lista): Imprimir (Lista) filas = len (lista) cols = len (lista [0]) Resultado = [] para K en el rango (2 * cols- 1.): # totales cols salida * 2 - 1 filas el diff = cols - K - 1. # cada diferencia línea para I en rango (cols): # rango de matriz subíndice de cada valor es 0 a cols para J en gama (cols): SI == JI diff: imprimir (lista [i] [j]) result.append (lista [i] [j]) de impresión () de impresión (resultado) de retorno resultado def diagonal_right (self, matriz): si no matriz: retorno [] fila = len ( matriz) col = len (matriz [0]) col2 = col resultado = [] para i en gama (fila): para j en rango (col2 - 1, -1, -1): # j倒序遍历 = LST [] I1, J1 = i, j # I1, J1 añaden para facilitar los mismos elementos de la diagonal, o cambiando el elemento i, j afecta a la elección de la que comienza el mientras I1 <= Row -. 1 y J1 <COL = -. 1 : lst.append (Matrix [I1] [J1]) J1 + 1 =. I1 + = 1. result.append (LST) iF I == 0 y J == 0: # cuando atravesada (0,0) en el comienzo de una después de la diagonal, por lo que j se fija en 0 . col2 = 1 retorno ( ' el iS Resultado: S% ' % Resultado, ' End ' ) IF __name__ == ' __main__ ' : lista = [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16 ]] solución = solución () solution.print_matix (lista) resultado = solution.diagonal_right (lista) de impresión (resultado)