Definición
Una matriz de punta de flecha es una matriz que tiene todas las entradas iguales a 0 , excepto las de la diagonal principal, la fila superior y la columna más a la izquierda. En otras palabras, la matriz debería verse así:
* * * * * * * * 0 0 0 0 * 0 * 0 0 0 * 0 0 * 0 0 * 0 0 0 * 0 * 0 0 0 0 *
Donde cada * es cualquier entrada distinta de cero.
Tarea
Dada una matriz cuadrada de enteros no negativos, verifique si es punta de flecha de acuerdo con la definición anterior.
Es posible que no se toma el tamaño de la matriz como entrada, a menos que el equivalente en su idioma a un arreglo es algo así como un puntero y una longitud (como C). Siempre será al menos 3 x 3.
El código más corto en bytes en cada idioma gana.
Entrada y salida
Puede elegir entre cualquiera de los siguientes formatos para recibir entradas:
- Una matriz en el tipo de matriz nativa (si su idioma tiene uno)
- Una matriz 2D 1 (una matriz de matrices 1D, cada una correspondiente a una fila)
- Una matriz 1D (ya que la matriz siempre es cuadrada)
- Una cadena (elegiste el espaciado, pero no abuses de esto de ninguna manera).
Cuando se trata de proporcionar resultados, puede informar un valor verdadero / falso siguiendo la definición estándar del problema de decisión , o elegir dos valores distintos y consistentes.
Además, puede tomar entrada y dar salida a través de cualquier método estándar , en cualquier lenguaje de programación , mientras toma nota de que estas lagunas están prohibidas por defecto. Si desea elegir cualquier otro formato o no está seguro acerca de algo, pregunte en los comentarios.
1: o el equivalente de su idioma (lista, vector, etc.)
Ejemplos
Veamos los siguientes ejemplos:
1 2 2 2 2 1 0 0 3 0 1 0 4 0 0 1
Esta es una matriz de punta de flecha (sus programas deben informar un valor verdadero), porque los elementos en la diagonal principal son 1 1 1 1
, los de la fila superior 1 2 2 2
y los de la columna de la izquierda 1 2 3 4
. Todas las demás entradas son 0 , por lo que cumple todas las condiciones.
3 5 6 7 1 0 8 0 0
Esta matriz no es punta de flecha porque hay un 0 en la diagonal principal.
9 9 9 9 9 9 0 0 9 7 9 0 9 0 0 9
Este tampoco es una punta de flecha, porque contiene un 7 en lugar de un 0 .
Más casos de prueba
Verdad:
[[1, 1, 1], [1, 1, 0], [1, 0, 1]] [[1, 2, 3, 4], [1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1]] [[1, 2, 2, 2], [2, 1, 0, 0], [3, 0, 1, 0], [4, 0, 0, 1]] [[34, 11, 35, 5], [56, 567, 0, 0], [58, 0, 679, 0], [40, 0, 0, 7]]
Falsy
[[3, 5, 6], [7, 1, 0], [8, 0, 0]] [[9, 9, 9, 9], [9, 9, 0, 0], [9, 7, 9, 0], [9, 0, 0, 9]] [[1, 0, 3, 4], [1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1]] [[1, 6, 3, 4], [13, 2, 0, 6], [29, 0, 1, 0], [2, 0, 0, 4]]