¿Es PHP bueno para estructuras de datos y algoritmos?
Para aprenderlos, sí, en cuanto dejas un hábito: recurrir a un array para todo. El array de PHP es lo bastante flexible para ser una lista, un diccionario y una pila, y eso es justo lo que oculta el coste de cada operación. Construye tú mismo las estructuras y PHP es un lenguaje perfectamente válido para razonar sobre algoritmos, y el natural para hacer la entrevista si PHP es tu trabajo.
¿Qué clases de la SPL corresponden a qué estructuras de datos?
SplStack y SplQueue son una pila y una cola, ambas construidas sobre SplDoublyLinkedList; SplMinHeap y SplMaxHeap son heaps; SplPriorityQueue es un max-heap ordenado por prioridad; y SplFixedArray es un array de tamaño fijo con índices enteros que usa menos memoria que un array. El array de siempre es tu tabla hash. No hay ninguna clase de árbol, trie ni grafo, así que esos los escribes tú, en los pasos uno y dos.
¿Por qué array_shift es lento para una cola en PHP?
Porque, tras quitar el primer elemento, renumera desde cero todas las claves enteras restantes, lo que recorre el array entero: una cola construida sobre array_shift cuesta O(n) por cada desencolado, y tiempo cuadrático para vaciarla. Usa SplQueue, o guarda un índice de cabeza en el array y avánzalo en su lugar. El paso uno te pide construir una cola tú mismo, que es la forma más segura de ver la diferencia.
¿Es estable sort() en PHP?
Desde PHP 8.0, sí: sort(), usort(), asort() y las demás funciones de ordenamiento mantienen los elementos iguales en su orden original. Antes de la 8.0 no lo garantizaban, así que el código que dependía del orden de los elementos iguales podía comportarse de forma distinta según la versión. De los ocho ordenamientos del paso tres, merge sort e insertion sort son estables, y quicksort y heap sort no; después de ese paso sabes por qué.
¿Qué cursos de esta ruta no se enseñan en PHP?
Tres: la programación dinámica y la serie de entrevistas en Python, que se enseñan en Python, y la manipulación de bits, que se enseña en C++. Aparecen después de los pasos, cada uno con un enlace que lo abre en su propio lenguaje. Una tabla de memoización en PHP es un array con el subproblema como clave. Una trampa al portar trucos de bits: si los dos operandos de &, | o ^ son cadenas, PHP opera sobre los valores de byte de sus caracteres y devuelve una cadena, así que asegúrate primero de que los valores son enteros.
¿Necesito saber PHP antes de empezar esta ruta?
Como mínimo, funciones, arrays, bucles y clases, ya que un nodo es, por naturaleza, un objeto con una propiedad $next. Si son nuevos para ti, el curso de PHP de Coddy te lleva hasta ahí primero, gratis, y esta ruta continúa donde él termina.