Se dice que una array cuadrada es una array simétrica si la transpuesta de la array es la misma que la array dada. La array simétrica se puede obtener cambiando fila a columna y columna a fila.
Ejemplos:
Input : 1 2 3 2 1 4 3 4 3 Output : Yes Input : 3 5 8 3 4 7 8 5 3 Output : No
Una solución simple es hacer lo siguiente.
1) Crear transpuesta de array dada.
2) Comprobar si la transposición y las arrays dadas son iguales o no.
PHP
<?php // Simple PHP code for check a matrix is // symmetric or not. // Returns true if mat[N][N] is // symmetric, else false function isSymmetric($mat, $N) { $tr = array(array()); for ($i = 0; $i < $N; $i++) for ($j = 0; $j < $N; $j++) $tr[$i][$j] = $mat[$j][$i]; // Fills transpose of // mat[N][N] in tr[N][N] for ($i = 0; $i < $N; $i++) for ($j = 0; $j < $N; $j++) if ($mat[$i][$j] != $tr[$i][$j]) return false; return true; } // Driver code $mat= array(array(1, 3, 5), array(3, 2, 4), array(5, 4, 1)); if (isSymmetric($mat, 3)) echo "Yes"; else echo "No"; // This code is contributed by Sam007 ?>
Producción :
Yes
Complejidad temporal: O(N x N)
Espacio auxiliar: O(N x N)
Una solución eficiente para verificar si una array es simétrica o no es comparar los elementos de la array sin crear una transposición. Básicamente necesitamos comparar mat[i][j] con mat[j][i].
PHP
<?php // Efficient PHP code for // check a matrix is // symmetric or not. $MAX = 100; // Returns true if mat[N][N] // is symmetric, else false function isSymmetric($mat, $N) { for ($i = 0; $i < $N; $i++) for ($j = 0; $j < $N; $j++) if ($mat[$i][$j] != $mat[$j][$i]) return false; return true; } // Driver code $mat = array(array(1, 3, 5), array(3, 2, 4), array(5, 4, 1)); if (isSymmetric($mat, 3)) echo("Yes"); else echo("No"); // This code is contributed by Ajit. ?>
Producción:
Yes
Complejidad temporal: O(N x N)
Espacio auxiliar: O(1)
¡ Consulte el artículo completo sobre Programa para verificar si una array es simétrica para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA