--- matriz de impresión pitón diagonalmente

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)

 

Supongo que te gusta

Origin www.cnblogs.com/turningli/p/12460534.html
Recomendado
Clasificación