Definizione
Una matrice a punta di freccia è una matrice che ha tutte le voci uguali a 0 , tranne quelle sulla diagonale principale, sulla riga superiore e sulla colonna più a sinistra. In altre parole, la matrice dovrebbe apparire così:
* * * * * * * * 0 0 0 0 * 0 * 0 0 0 * 0 0 * 0 0 * 0 0 0 * 0 * 0 0 0 0 *
Dove ogni * è una voce diversa da zero.
Compito
Data una matrice quadrata di numeri interi non negativi, controlla se si tratta di una freccia secondo la definizione sopra.
Si può non prendere la dimensione della matrice come input, a meno equivalente di lingua ad un array è qualcosa come un puntatore e una lunghezza (come il C). Sarà sempre almeno 3 x 3.
Vince il codice più breve in byte in ogni lingua.
Ingresso e uscita
Puoi scegliere uno dei seguenti formati per ricevere input:
- Una matrice nel tipo di matrice nativa (se la tua lingua ne ha una)
- Un array 2D 1 (un array di array 1D, ciascuno corrispondente a una riga)
- Un array 1D (poiché la matrice è sempre quadrata)
- Una stringa (hai scelto la spaziatura, ma per favore non abusarne in alcun modo).
Quando si tratta di fornire un output, è possibile segnalare un valore di verità / falsità seguendo la definizione standard di problema decisionale o scegliere due valori distinti e coerenti.
Inoltre, puoi prendere input e dare output attraverso qualsiasi metodo standard , in qualsiasi linguaggio di programmazione , tenendo presente che queste scappatoie sono vietate per impostazione predefinita. Se vuoi scegliere qualsiasi altro formato o non sei sicuro di qualcosa, chiedi nei commenti.
1: o l'equivalente della tua lingua (elenco, vettore, ecc.)
Esempi
Diamo un'occhiata ai seguenti esempi:
1 2 2 2 2 1 0 0 3 0 1 0 4 0 0 1
Questa è una matrice a punta di freccia (i tuoi programmi dovrebbero riportare un valore veritiero), perché gli elementi sulla diagonale principale sono 1 1 1 1
, quelli sulla riga superiore sono 1 2 2 2
e quelli sulla colonna più a sinistra 1 2 3 4
. Tutte le altre voci sono 0 , quindi questo soddisfa tutte le condizioni.
3 5 6 7 1 0 8 0 0
Questa matrice non è una freccia poiché nella diagonale principale è presente uno 0 .
9 9 9 9 9 9 0 0 9 7 9 0 9 0 0 9
Anche questo non è una punta di freccia, perché contiene un 7 al posto di uno 0 .
Altri casi di test
Truthy:
[[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]]