Definição
Uma matriz de ponta de seta é uma matriz que possui todas as entradas iguais a 0 , exceto as na diagonal principal, linha superior e coluna mais à esquerda. Em outras palavras, a matriz deve ficar assim:
* * * * * * * * 0 0 0 0 * 0 * 0 0 0 * 0 0 * 0 0 * 0 0 0 * 0 * 0 0 0 0 *
Onde cada * é qualquer entrada diferente de zero.
Tarefa
Dada uma matriz quadrada de números inteiros não negativos, verifique se é ponta de seta de acordo com a definição acima.
Você não pode usar o tamanho da matriz como entrada, a menos que o idioma equivalente a uma matriz seja algo como um ponteiro e um comprimento (como C). Sempre será pelo menos 3 x 3.
O código mais curto em bytes em cada idioma vence.
Entrada e saída
Você pode escolher entre qualquer um dos seguintes formatos para receber entrada:
- Uma matriz no tipo de matriz nativa (se o seu idioma tiver um)
- Uma matriz 2D 1 (uma matriz de matrizes 1D, cada uma correspondendo a uma linha)
- Uma matriz 1D (uma vez que a matriz é sempre quadrada)
- Uma string (você escolheu o espaçamento, mas não abuse disso de forma alguma).
Quando se trata de fornecer saída, é possível relatar um valor de verdade / falsidade seguindo a definição padrão do problema de decisão ou escolher dois valores distintos e consistentes.
Além disso, você pode receber e fornecer resultados através de qualquer método padrão , em qualquer linguagem de programação , observando que essas brechas são proibidas por padrão. Se você quiser escolher outro formato ou não tiver certeza sobre algo, pergunte nos comentários.
1: ou o equivalente do seu idioma (lista, vetor etc.)
Exemplos
Vejamos os seguintes exemplos:
1 2 2 2 2 1 0 0 3 0 1 0 4 0 0 1
Essa é uma matriz de ponta de seta (seus programas devem reportar um valor verdadeiro), porque os elementos na diagonal principal são 1 1 1 1
, os da linha superior 1 2 2 2
e os da coluna mais à esquerda 1 2 3 4
. Todas as outras entradas são 0 , portanto, isso satisfaz todas as condições.
3 5 6 7 1 0 8 0 0
Essa matriz não é uma ponta de seta porque há um 0 na diagonal principal.
9 9 9 9 9 9 0 0 9 7 9 0 9 0 0 9
Este também não é uma ponta de seta, porque contém um 7 no lugar de um 0 .
Mais casos de teste
Verdade:
[[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]]