Verificación de Orden en Diccionario Alienígena
Clase 4 de 35 • Curso de Algoritmos Avanzados: Patrones de Arrays y Strings
Contenido del curso
- 3

Patrón de Dos Apuntadores en Algoritmos de Lista
02:56 - 4

Verificación de Orden en Diccionario Alienígena
02:56 - 5

Ordenamiento de Palabras en Idiomas Alienígenas
12:05 - 6
Playground: Verifying Alien Dictionary
00:00 - 7

Ordenación de Palabras en Diccionario Alienígena
15:07 - 8

Combinar Listas Ordenadas en un Array Ascendente
02:11 - 9

Ordenamiento de Listas con Complejidad Óptima y Espacio Constante
11:44 - 10
Playground: Merge Two Sorted Lists
00:00 - 11

Intercalación de Listas Ordenadas en Python
09:04 - 12

Resolver el problema "Container with Most Water" en Python
01:18 - 13

Cálculo Óptimo de Área en Listas de Alturas
09:02 - 14
Playground: Container with Most Water
00:00 - 15

Implementación de solución de cálculo de área máxima en Java
15:42 - 16

Implementación de Trapping Rainwater en Complejidad Lineal
01:02 - 17
Retos de Algoritmos con Apuntadores en Python
02:44 - 18
Patrones de Dos Apuntadores: Soluciones a Problemas Comunes en Python
06:43
- 19

Patrón Ventana Deslizante para Análisis de Datos Secuenciales
02:33 - 20

Subcadena más larga sin caracteres repetidos: patrón ventana deslizante
01:51 - 21

Algoritmo de Ventana Deslizante para Subcadenas Únicas
11:05 - 22
Playground: Longest Substring Without Repeating Characters
00:00 - 23

Algoritmo Python para Substring más Largo Sin Repeticiones
14:16 - 24
Retos de Algoritmos: Dos Apuntadores y Subcadenas
01:50 - 25
Máximos 1s Consecutivos y Subcadenas sin Repeticiones
03:22
- 26

Algoritmo de búsqueda binaria en listas ordenadas
09:26 - 27

Búsqueda en Arrays Rotados: Encontrar Entero en Lista Ordenada
02:19 - 28

Búsqueda Binaria en Arreglos Rotados
04:59 - 29
Playground: Search in Rotated Arrays
00:00 - 30

Búsqueda en Arrays Rotados con C++
10:53 - 31

Búsqueda eficiente en matriz ordenada MxN
01:44 - 32

Búsqueda Binaria en Matrices 2D Ordenadas
06:33 - 33
Playground: Search 2D Array Matrix
00:00 - 34

Búsqueda Binaria en Matrices con Python
07:48
¿Cuál es el problema planteado en Verifying Alien Dictionary?
En este fascinante ejercicio de programación, nos enfrentamos a un reto que aparece en entrevistas de empresas tecnológicas destacadas como Facebook, Microsoft y Google. El problema "Verifying Alien Dictionary" involucra una lengua alienígena que, inesperadamente, utiliza las letras que conocemos en el español, aunque posiblemente en un orden diferente. Se nos presenta un conjunto de palabras escritas en este idioma y debemos determinar si las palabras están ordenadas de acuerdo al orden alfabético definido para ese idioma.
¿Cómo entender lo que nos piden hacer?
Este problema se basa en una comparación lexicográfica de palabras:
- Entradas:
- Una lista de palabras: por ejemplo,
["apple", "app"]. - Una string que define el orden del alfabeto en el idioma alienígena, como
"hlabcdefgijkmnopqrstuvwxyz".
- Una lista de palabras: por ejemplo,
- Salida:
- Un valor booleano:
truesi las palabras están ordenadas siguiendo las reglas del alfabeto alienígena;falseen caso contrario.
- Un valor booleano:
¿Cómo interpretar las reglas para las palabras?
Para poder verificar si las palabras están ordenadas, debemos seguir estos pasos:
- Construir un mapa que asigne un índice a cada letra en el alfabeto alienígena. Esto nos permitirá comparar rápidamente el orden relativo de dos letras.
- Comparar las palabras de la lista una por una en el orden proporcionado, asegurándonos de que cada palabra sea menor o igual a la siguiente.
- Basarnos en reglas similares a las de un diccionario tradicional: si una palabra es prefijo de otra, por ejemplo, "app" debería preceder a "apple".
¿Por qué las entrevistas de trabajo valoran este problema?
Este tipo de ejercicio mide varias habilidades esenciales en programación:
- Comprensión de órdenes y estructuras de datos.
- Capacidad de implementar lógicas de comparación personalizadas.
- Organizar eficientemente el código para manipular cadenas y listas.
Aunque no es un problema extremadamente complejo, los entrevistadores buscan ver cómo los candidatos piensan sistemáticamente y cómo abordan desafíos que pueden requerir una comprensión detallada de algoritmos básicos y estructuras de datos.
¡Consejos para resolverlo!
- Divide y vencerás: Rompe el problema en pasos más pequeños y abórdalos uno por uno.
- Comentarios claros en el código: Ayuda a seguir el flujo de la lógica y es una buena práctica de programación.
- Prueba, prueba y prueba: Usa diferentes casos de prueba para asegurar que tu solución cubra todos los escenarios.
Tómate el tiempo necesario para formular tu solución antes de avanzar. Este es un gran ejercicio para mejorar tus habilidades de programación y lógica, así que ¡anímate y pon a prueba tus conocimientos!