Ir al contenido
Formación en Algoritmos y Programación | Deep Skill
  • Inicio
  • Cursos
  • Mi Aprendizaje
  • Blog
  • 0
  • Iniciar sesión
  • Contáctenos
Formación en Algoritmos y Programación | Deep Skill
  • 0
    • Inicio
    • Cursos
    • Mi Aprendizaje
    • Blog
  • Iniciar sesión
  • Contáctenos
  • Todos los blogs
  • Problemas de Entrevista Técnica (Big Tech)
  • Problema Real de Entrevista (Amazon, Microsoft): Comparar múltiples strings en producción (Longest Common Prefix)
  • Problema Real de Entrevista (Amazon, Microsoft): Comparar múltiples strings en producción (Longest Common Prefix)

    11 de noviembre de 2025 por
    Problema Real de Entrevista (Amazon, Microsoft):
Comparar múltiples strings en producción (Longest Common Prefix)
    Deep Skill, Jean Pierre Mandujano
    | Todavía no hay comentarios

    Longest Common Prefix

    En este artículo analizamos Longest Common Prefix, un problema clásico de manipulación de strings que aparece frecuentemente en entrevistas técnicas de empresas como Google, Amazon y Microsoft. Es excelente para evaluar tu razonamiento lógico y manejo eficiente de cadenas.

    Enunciado del problema

    Dado un arreglo de strings strs, encuentra el prefijo común más largo entre todos ellos. Si no existe un prefijo común, retorna "".

    Ejemplo 1

    Entrada: strs = ["flower", "flow", "flight"]
    Salida: "fl"
    

    Ejemplo 2

    Entrada: strs = ["dog","racecar","car"]
    Salida: ""
    

    Ejemplo 3

    Entrada: strs = ["interstellar","internet","international"]
    Salida: "inter"
    

    Observaciones clave

    • Cada carácter en la posición i debe coincidir en todas las palabras.
    • El prefijo no puede ser más largo que la palabra más corta.
    • La primera discrepancia define el final del prefijo.

    Paso a paso: solución óptima

    Estrategia

    1. Usar la primera palabra como referencia.
    2. Comparar carácter por carácter con las demás.
    3. Detenerse al encontrar una diferencia.
    4. Construir el prefijo acumulando caracteres válidos.

    Casos especiales

    • Arreglo vacío → ""
    • Cadena vacía presente → ""
    • Una sola palabra → la palabra completa

    Implementación en TypeScript

    function longestCommonPrefix(strs: string[]): string {
      if (strs.length === 0) return '';
      
      let prefix = '';
      let index = 0;
      
      while (true) {
        const current = strs[0][index];
        if (!current) return prefix;
        
        for (const word of strs) {
          if (word[index] !== current) return prefix;
        }
        
        prefix += current;
        index++;
      }
    }
    

    Implementación en Python

    def longestCommonPrefix(strs: list[str]) -> str:
        if not strs:
            return ""
        
        prefix = ""
        index = 0
        
        while True:
            if index >= len(strs[0]):
                return prefix
            
            current = strs[0][index]
            
            for word in strs:
                if index >= len(word) or word[index] != current:
                    return prefix
            
            prefix += current
            index += 1
    

    Complejidad

    • Tiempo: O(n * m), donde n es el número de strings y m el largo del prefijo común.
    • Espacio: O(1) adicional.

    Casos de prueba adicionales

    EntradaSalidaExplicación
    ["a"]"a"Una sola palabra
    ["", "b"]""Cadena vacía
    ["abc", "abc", "abc"]"abc"Idénticas
    ["prefix", "pre", "preparation"]"pre"La más corta manda
    ["apple", "banana", "cherry"]""No hay coincidencia

    Conclusión

    Es un problema ideal para practicar lógica sobre strings, comparación carácter por carácter y manejo de casos borde. La clave es detenerse en la primera discrepancia. La solución es limpia, eficiente y excelente para entrevistas técnicas.

    BENEFICIO EXCLUSIVO

    Obtén un 50% de descuento en tu primera compra de cursos de algoritmos .

    SKILL-ALGO-50


    en Problemas de Entrevista Técnica (Big Tech)
    Iniciar sesión dejar un comentario

    Síganos

    Escríbenos
    [email protected]

    Escríbenos
    [email protected]

    Síganos