Menu
CoddyTech

Minimum Window Substring

Recibes dos cadenas, s y t. Encuentra la subcadena más corta de s, un tramo de caracteres consecutivos, que contenga todos los caracteres de t, contando las repeticiones: si t contiene una letra dos veces, la subcadena debe contenerla al menos dos veces. El orden no importa y la subcadena también puede contener otros caracteres.

Si varias subcadenas tienen la misma longitud mínima, devuelve la que aparece más a la izquierda. Si ninguna subcadena de s contiene todos los caracteres de t, devuelve una cadena vacía.

Función

minWindow(s: string, t: string) → string
sstring
la cadena en la que buscar
tstring
los caracteres que debe contener la ventana, incluidas las repeticiones
Devuelvestring
la subcadena más corta y, después, la más a la izquierda de s que contiene todo t, o una cadena vacía

Restricciones

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s y t contienen solo letras inglesas. Las letras mayúsculas y minúsculas son caracteres diferentes.
  • Cuando varias subcadenas son las más cortas, la respuesta es la que aparece más a la izquierda; cuando no existe ninguna, es "".

Ejemplos

Entrada
s = "mappingtheplan"t = "nap"
Salida
"plan"
Explicación
Al leer de izquierda a derecha, la primera ventana que contiene una n, una a y una p es appin, de cinco caracteres. plan, al final, contiene las tres en cuatro caracteres, y ningún tramo de tres caracteres las contiene.

lock icon+17 pruebas ocultas al enviar

challenge icon

Para ir más allá

Cuando t usa solo unas pocas letras y s es larga, la mayor parte de s nunca puede importar. ¿Puedes hacer que la ventana salte solo entre las posiciones que contienen una letra de t?

Restablecer código
def minWindow(s, t):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

s = "mappingtheplan"
t = "nap"

Esperado

"plan"